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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
21 января 2015, 16:33
+1
Мне кажется, что речь шла об «умеренном использовании» TV. Я лично пользуюсь, но в меру стараюсь. Что бы избежать излишнего их количества или сортировки по ним.

К примеру если нужно вывести список в 1000 строк и 20 столбцов, где каждый столбец — TV, будут проблемы, так как у нас 20 джойнов получится.

А если же эти 20 TV выводятся просто на одной странице для одного объекта — разницы в скорости вы не увидите.

В общем с умом подходим к делу.
Наумов Алексей
20 января 2015, 22:00
0
Спасибо! Как то странно )
Наумов Алексей
20 января 2015, 08:46
0
Окей, в принципе да. Я об этом тоже подумал.

Но в существующем коде возможности голосовать за объект с другим class нет, я верно понимаю:
github.com/bezumkin/Tickets/blob/master/core/components/tickets/processors/web/ticket/vote.class.php#L53
?

Тогда пишу свой код для поддержки голосования за другие типы объектов на сайте!
Наумов Алексей
18 января 2015, 13:36
0
Для слайдера сделай галерею с использованием MIGx. В случае с 3 изображениями загрузить их вручную вполне себе обыденная задача.
Наумов Алексей
17 января 2015, 17:45
0
Ну вот в форме:
<input type="hidden" name="resource_id" value="[[*id]]" />
resource_id — вы ставите id ТЕКУЩЕГО документа, на котором форма расположена

а в сниппете код:

$doc = $modx->getObject('modResource',array('id'=>$hook->getValue('resource_id')));
 
if (empty($doc)){
    $doc = $modx->newObject('modResource');
    $doc->set('createdby', $modx->user->get('id'));
}
else{
    $doc->set('editedby', $modx->user->get('id'));
}
построчно:
найти ресурс, который указан в поле resource_id
если он пустой — то создать новый ресурс
иначе — редактировать существующий.

отсюда и все идет…

кстати, если кто-то умный подменит и установит resource_id = 1, то будет преспокойно менять текст главной страницы вашего сайта =)

а вообще задача для новичка в MODx — сложная
Наумов Алексей
16 января 2015, 10:34
+1
В принципе я тоже согласен с добавлением пары полей.

Придумать можно много чего.
Например смело:
alt, title,tags (или для упрощения я бы назвал это group). Теги предполагают что их может быть несколько через запятую, все это несколько усложняет реализацию, а группа она группа =), одна, без деления запятыми.

Ну и вообще было бы прикольно добавить field1, field2, field3 просто на всякий случай).

И еще замечание, при генерации названия картинки из имени файла стоит сразу удалять расширение файла, а то руками приходится делать это.
Наумов Алексей
15 января 2015, 08:58
0
Сразу в голову пришло запихнуть куда-нибудь массив вида $sales[$resource_id] = $sale в виде json и проверять новое значение TV с ним.

Или для этих же целей можно использовать:

$prop = $modx->fromJSON($resource->get('properties'));
$old_sale = empty($prop['old_sale']) ? 0 : $prop['old_sale'];

... тут сравниваем скидку с $old_sale
...

$prop['old_sale'] = $resource->getTVValue('sale');

$resource->set('properties', $modx->toJSON($prop')))
$resource->save();


как то так…
Наумов Алексей
13 января 2015, 15:16
0
Модификатор date по сути и вызывает php функцию date.
Наумов Алексей
13 января 2015, 10:49
0
php.net/manual/ru/function.date.php

в табличке вторая строка снизу
Наумов Алексей
12 января 2015, 13:20
0
Если пункты меню не будут часто добавляться, то я делаю так:

[[pdoMenu?
	...
	&parents=`0` 
	&resources=`1,5,6,7,8`
        &sortby=``
	...
]]
resources — список id пунктов меню, пустой sortby — сортировать в том порядке, как указаны id.
Наумов Алексей
12 января 2015, 09:03
+1
Я использую параметр rowClass=`item-[[+id]]` или как то так он называется, что бы добавить к каждому пункту меню class=«item-123» (для примера), а потом прописываю эти классы в css файле.
Наумов Алексей
12 января 2015, 09:01
0
Я б наверное не рискнул =)

Хотя ради теста можно поставить MODx с минишопом и нагенерить нужное кол-во товаров, посмотреть, как будет открываться все =)
Наумов Алексей
05 января 2015, 10:27
0
У меня жуткий костыль, код разбросан в 10 местах, суть такая:
1. В низу страницы есть код скрытой формы, эта форма отображается при помощи fancybox при загрузке картинки.
2. В форме есть input type=file, загрузка файлов идет по одному
3. Сама форма отправляется на сервер через ajax (jquery forms)
4. На севере висит php скрипт файл сохраняет и выдает в ответ сформированный html код со ссылкой на картинку и маленьким превью.
Наумов Алексей
03 января 2015, 10:08
1
0
Я делал так:

1. Немного модернизируем js файл от тикетс (точнее делаем копию оригинального и указываем путь к нему в настройках), мой файл
fishspace.ru/assets/components/tickets/js/web/fish_default.js
мои изменения отмечены комментариями // FishSpace
2. в форму добавления комментария добавляем код ниже textarea
<div>
  	  <p>
  	    <a id="commentImagesUpload" href="#"><i class="icon-camera"></i>Прикрепить изображение</a>
  	  </p>
  	  <div id="commentImagesPanel"></div>
  	</div>
В момент написания комментария прикрепленные фотки вставляются внутрь commentImagesPanel (и соответственно у пользователя есть предпросмотр их), а в момент нажатия кнопки «написать комментарий» — html код с комментарями добавляется в textarea (это делает скрипт из п.1) и все отправляется на сервер.

3. На ссылку commentImagesUpload нужно повесить ajax загрузчик файлов, у меня так:
$('#commentImagesUpload').click(function(){
    ImageUpload(true);
    return false;
  });
функция ImageUpload у меня довольно навороченная и приводить ее код не буду. Суть ее в том, что бы показать всплывающее окно, которое позволит выбрать файл и загрузить его на сервер. На сервере скрипт загружает картинку, делает для нее превью, и возвращает ответ в json:

$html_code = '<a href="myimage.jpg"><img src="mythumb.jpg" />';
$result = array('success' => true, 'html' => $html_code);
return htmlspecialchars(json_encode($result), ENT_NOQUOTES);
В общем такой костыль у меня прикручен.
Наумов Алексей
23 декабря 2014, 08:56
0
Ну нет, лучше прочитать публикации здесь bezumkin.ru/modx/minishop2/classes/, особенно 2 последние

немного сложновато для первого раза, но зато можно все сделать.
Наумов Алексей
19 декабря 2014, 14:45
0
Если товара miniShop2, то лучше не шаблон проверять, а class_key = 'msProduct'.
Наумов Алексей
10 декабря 2014, 12:11
+1
Не очень охота читать так много кода и текста, но прочитав «проблему» в конце пара замечаний:

1. Комментарии добавляются не к странице, а к thread, который может быть, например, page-155, или mycustomthread, в общем какой угодно. Поэтому на одной странице вы можете вывести разные комментарии, из разных thread…
2.… но в тоже время вроде нельзя делать несколько вызовов TicketsComment, т.к. вроде возникает проблема в javascript =)

короче смотрите что такое thread, и как это устроено в БД.
Наумов Алексей
08 декабря 2014, 11:53
0
=)))
у каждого свое видение того, как что-то работать может. Все, читающие эту публикацию, безусловно рады нововведениям, но исходя из своего опыта, пытаются «усовершенствовать» функционал, предлагая разные пути, в надежде, что будет найден «идеал». Так что мы не критикуем, а предлагаем и обсуждаем. Вот)