Klike

Klike

С нами с 14 января 2015; Место в рейтинге пользователей: #48

Закалка MODX Revolution (перевод)

Своего писать я пока сомневаюсь, уровень не тот, а вот перевести полезную статью с официальной документации — это с удовольствием. Перевод местами может показаться несколько вольным, что касается формулировок, — иначе переводить скучно. Но в том, что касается технических деталей, старался быть дотошно точным. Так что, если найдёте технические неточности — ругайтесь в комментах. А на филологию прошу не жаловаться:) И тем более на идеологические расхождения с Вашим мировоззрением — тут все вопросы к авторам доков. Паранойи и почвы для громких споров среди «экспертов по безопасности» в статье предостаточно. Помни, о читатель, всё это касается в первую очередь важных и заметных проектов.
Добро пожаловать под кат.
mngatoff
15 февраля 2016, 02:03
modx.pro
62
21 574
+13

Сортировка тикетов (Tickets) по рейтингу

1 300
Сортировка тикетов (Tickets) по рейтингу и вывод через PdoPage. Долго искал пример на modx.pro. Нашел на одном из своих проектов.
Wassi Wassinen
14 февраля 2016, 16:57
modx.pro
11
2 824
+3

Скрываем config.core.php

Я давненько на своих сайтах меняю адрес админки и папки /connectors/

Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём. Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне. Да, он не выдаёт никакой информации, но показывает белый экран, а веб-сервер отдаёт ответ 200.
Илья Уткин
13 февраля 2016, 14:56
modx.pro
30
12 792
+5

Скрипт импорта CSV в базу данных в формате JSON

Доброго времени суток!
Написал скрипт, который будет запускаться по крону, для обновления информации на страницах из
CSV файлов, которые располагаются на других сайтах.

Скрипт вроде работает, но хочется убедиться, что всё правильно с точки зрения безопасности/оптимизации и прочего. Поэтому обращаюсь к сообществу с целью исправления ошибок, если таковые имеются.

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)).'/core/config/config.inc.php';
require_once MODX_BASE_PATH . 'index.php';

$q = $modx->newQuery('modResource');
$q->where(array('parent' => 6,'published'=>1,'csvlink:!=' => ''));
$q->select('id,csvlink');
if ($q->prepare() && $q->stmt->execute()) {
    while ($rowss = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        $array = array($rowss['id'] => $rowss['csvlink']);
	    if (($handle = fopen($rowss['csvlink'], 'r')) === false) {
		    die('Error opening file');
    	}
	$headers = fgetcsv($handle, 0, ';');
    	$promo = array();
	    while ($row = fgetcsv($handle, 0, ';')) {
		    $promo[] = array_combine($headers, $row); // $promo[$row['0']] для выноса ID в Индекс массива
    	}
	fclose($handle);
    	$promo_json = json_encode($promo);

	$resource = $modx->getObject('modResource', $rowss['id']);
    	$resource->set('promo_json', $promo_json);
	$resource->save();
	$modx->cacheManager->refresh();
    }
};
Klike
02 февраля 2016, 13:35
modx.pro
4
1 232
0

Интересует ваше мнение

Имеется сайт с промокодами для различных интернет-магазинов.
У каждого магазина может быть несколько промокодов/скидок:



В каждом промокоде есть подробные поля:



Думаю это можно реализовать с помощью MIGX. Нужно ли использование minishop в данном случае? Или может совершенно другим путём пойти?)

p.s. Импорт всех промокодов будет осуществляться из CSV файла, поэтому думаю использовать minishop, так как там есть встроенный импорт, который можно настроить по крону.
Klike
28 января 2016, 09:45
modx.pro
1
786
0

Fenom Tickets ms2Gallery

Вызываю getTickets в обычном режиме – всё хорошо, в Fenom – картинки не хотят показываться)
Klike
20 января 2016, 09:08
modx.pro
5
2 650
0

Видео докладов с прошедшего MODX Meetup Minsk 2015

Ура! Свершилось!



Все видео обработаны, выложены на youtube HD качестве, звук хороший, картинка не вау, так как в помещении света было мало, но смотреть можно.

Сразу даю ссылку на playlist, ниже в заметке все видео.

Ссылка на слайды есть в описании к каждому видео на Youtube.

Комментарии, замечания приветствуются.

Іван Клімчук
19 января 2016, 13:37
modx.pro
9
4 420
+30

Соединяем EasyComm и mFilter2

Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).

Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.

Добавляем в вызов mFilter2 следующий код:

&loadModels=`easycomm`
&where=`{"class_key":"msProduct"}`
&leftJoin=`{
	"ecThread": {
		"class": "ecThread",
		"on": "msProduct.id = ecThread.resource"
	}
}`

&select=`{
	"msProduct": "*",
	"ecThread": "ecThread.rating_simple AS rating, ecThread.count AS reviews"
}`
Павел
25 декабря 2015, 10:34
modx.pro
34
4 821
+14

Cron + .sh + php

Доброго времени суток!
Пытаюсь выполнять ряд команд в файле .sh с помощью cron.
Среди команд есть на удаление папки/файла, и затем запуск импорта в minishop2.
Если вручную запускать из консоли, всё хорошо, а по крону никак не хочет импортировать.

Подскажите, пожалуйста, куда копать?)
Klike
24 декабря 2015, 21:32
modx.pro
1
1 404
0

tpl.msMiniCart и Fenom

Перевожу чанки в Fenom, столкнулся с такой особенностью в миниКорзине:

Стандартный код чанка, всё работает, но…
<div id="msMiniCart" [[+total_count:isnot=`0`:then=`class="full"`:else=``]]>
	<div class="empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_is_empty]]
	</div>
	<div class="not_empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_goods]]: <strong class="ms2_total_count">[[+total_count]]</strong> [[%ms2_frontend_count_unit]],
		[[%ms2_minicart_cost]]: <strong class="ms2_total_cost">[[+total_cost]]</strong> [[%ms2_frontend_currency]]
	</div>
</div>
если перепить на Fenom, ни один из ниже написанных вариантов вызова не срабатывает
{$_modx->getPlaceholder('total_count')}
{$_pls['total_count']}
{$total_count}
Стандартный же
[[+total_count]]
работает, как надо.

Может кто сталкивался с подобным? Или ну его?!)) Оставить как есть?)
Klike
21 декабря 2015, 09:30
modx.pro
2
1 883
0