Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
10 июля 2017, 09:14
0
Добрый день!

А текст ошибки то? На этой строчке ничего интересного я не вижу.
Наумов Алексей
07 июля 2017, 09:16
+1
Никак)

Ну точнее, можно сделать по аналогии с тегами из miniShop2, когда значения из json поля дополнительно дублируются в отдельную таблицу и фильтрация идет по этой таблице.
Наумов Алексей
06 июля 2017, 14:51
+1
А вообще это я добрый, на самом деле в поиске все это уже есть и не один раз)
Наумов Алексей
06 июля 2017, 14:50
1
+1
О, это просто!

1. Делаем новый TV: changeTemplate, тип текст
2. Бацаем плагин на событие OnDocFormRender
3. Теперь открываем документ, допустим Новости, и в TV поле changeTemplate пишем 2, где 2 — это id шаблона Новость. Теперь у создаваемых новостей будет автоматом шаблон 2.
Но еще круче. Допустим, у нас структура Каталог-Категория-Категория-Товар. Значит в TV у Каталога мы пишем: 3,3,4, где 3 — шаблон категории, а 4 — товара. Короче прям прописываем шаблоны внутрь структуры )

Код плагина
<?php
/**
* =========================
* ChangeTemplate
* =========================
*
* Plugin for MODX Revolution
* Set which template is inherited by children 
* documents of a certain parent document
*
* Author:
* Marc Loehe (boundaryfunctions)
* marcloehe.de
*
* Modified by:
* Lorenzo Stanco <lorenzo.stanco@gmail.com>
* Lorenzostanco.com
*
* Usage:
*
* 1. Paste this as new plugin and connect it to system event
* 'OnDocFormRender'.
*
* 2. Assign a new TV 'changeTemplate' to each template
* for which you want to define the default children template.
*
* 3. Set the newly created TV to input type "Text" 
*
* 4. Open a document and in the 'changeTemplate' TV type a 
* comma separated list of template IDs.
*
* 5. Have fun!
*
*/
 
// Check Event
if ($modx->event->name == 'OnDocFormRender' && $mode == modSystemEvent::MODE_NEW) {
   
  $id = empty($_REQUEST['id']) ? false : $_REQUEST['id'];
  $id = empty($id) ? (empty($_REQUEST['parent']) ? false : $_REQUEST['parent']) : $_REQUEST['parent'];
  // Get current document ID
  if ($id) {
 
    // Document Chain
    $resources = array($id);
 
    // Get parent ID
    foreach ($modx->getParentIds($id, 10, array('context' => $_REQUEST['context_key'])) as $parentId) {
      if ($parentId) array_push($resources, $parentId);
    }
     
    // Search changeTemplate in the chain
    $level = 0;
    $childTemplates = array();
    foreach ($resources as $resourceId) {
      $resource = $modx->getObject('modResource', $resourceId);
      if ($childTemplatesTV = $resource->getTVValue('changeTemplate')) {
         
        // Create template array for each tree level
        $childTemplates = @explode(',', $childTemplatesTV);
        if (empty($childTemplates)) break;
        foreach ($childTemplates as $k => $v) $childTemplates[$k] = intval(trim($v));
         
        break;
 
      }
 
      $level++;
 
    }
 
    // Set template based on tree level
    if (!empty($childTemplates)) {
      $useTemplate = $childTemplates[$level];
      if (!empty($useTemplate)) {
        
        // Set default template
        if (isset($modx->controller)) {
          $modx->controller->setProperty('template', $useTemplate);
        } else { // modX < 2.2.0
          $_REQUEST['template'] = $useTemplate;
        }
 
      }
    }
 
  }
 
}
Наумов Алексей
05 июля 2017, 14:56
+1
Поправил, видимо строчку кода случайно удалил, обновляемся.
Наумов Алексей
05 июля 2017, 11:55
+1
Странно, правда не работает) Поправлю после обеда.
Наумов Алексей
04 июля 2017, 11:03
+1
Частично сделал в версии 1.4.1.
Прописываются при создании сообщения — thread, при создании цепочки — resource, name.
Естественно, только если мы работаем на странице ресурса.

+ можно создать системную настройку ec_rating_default для того, чтобы оценка прописывалась автоматически.
Наумов Алексей
03 июля 2017, 09:38
0
$response->response['object']['id']
у меня данный вариант 100% рабочий.
Наумов Алексей
30 июня 2017, 10:46
0
Исходная то картинка не в png с прозрачностью?

Думаю часть траблов из-за изменения пропорций. Вообще менять пропорции — как то странно, или обрезают в таком случае, или фон по краям добавляют.
Наумов Алексей
30 июня 2017, 09:25
0
Посмотрите, imagick на хостинге стоит? Без него обработка картинок идет с большим трудом)
Наумов Алексей
29 июня 2017, 10:01
0
Я делал upload файла через процессор, после чего так:
$file = $modx->getObject('msResourceFile', $response->response['object']['id']);
$file->set('name', $name);
$file->save();
Наумов Алексей
27 июня 2017, 09:48
0
1. Поле оценка как бы является основой компонента, ради него почти все и задумывалось) Можно его прописать по-умолчанию, вот только нужно подумать, чему прописывать?.. 5 или 1?
2. У ресурса может быть несколько цепочек, какую из них выбрать?.. думаю, что можно искать по шаблону resource-[[*id]], и если она есть — прописывать ее, иначе — пустое поле. И естественно, что это только на странице ресурса.
Наумов Алексей
23 июня 2017, 14:41
+1
приехали)

удаляете свежий пакет, затем clip2net.com/s/3LzDP7p
Наумов Алексей
23 июня 2017, 14:12
0
Ну у вас не стили не подключаются, а html код различный. При работе через ajax выглядит так, будто часть Html тегов были убраны. Либо чанки каким-то образом разные подключаются, либо что-то режет html.

А, ну так там хитрая конструкция для управления выводом, еще со старым (не феном в общем) способом из pdoTools, при помощи комментариев. Что-то не могу ссылку найти. Видимо ajax режим это не обрабатывает. Можно на феном чанки переписать вам попробовать.
Наумов Алексей
23 июня 2017, 09:27
0
Файлы стилей не подгружаются? Подключите все эти файлы вручную.
Сниппет ecMessages регистрирует css и js файлы, и если этот сниппет вызывать позже основной загрузки страницы, то и файлов не будет подключено…
Наумов Алексей
23 июня 2017, 09:07
0
Все правильно в голову приходит =)
Наумов Алексей
22 июня 2017, 09:16
0
Теперь на этом ресурсе вызываете любой сниппет.

В нем для начала сделайте
print_r($_REQUEST);
думаю, дальше будет понятно.

Цитата из описания:
Все именованные параметры fastrouter можно получить в $_REQUEST. Ключ по умолчанию 'fastrouter'
при обработчике тип — ресурс, параметры также доступны в плейсходерах с префиксом vp.
Наумов Алексей
21 июня 2017, 09:38
0
Может простой сниппет с getObject сделать просто?

ecMessages пока не умеет выводить по id, попробую на днях «научить».