Klike
С нами с 14 января 2015; Место в рейтинге пользователей: #48Скрипт импорта CSV в базу данных в формате JSON
Доброго времени суток!
Написал скрипт, который будет запускаться по крону, для обновления информации на страницах из
CSV файлов, которые располагаются на других сайтах.
Скрипт вроде работает, но хочется убедиться, что всё правильно с точки зрения безопасности/оптимизации и прочего. Поэтому обращаюсь к сообществу с целью исправления ошибок, если таковые имеются.
Написал скрипт, который будет запускаться по крону, для обновления информации на страницах из
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();
}
};
Интересует ваше мнение
Имеется сайт с промокодами для различных интернет-магазинов.
У каждого магазина может быть несколько промокодов/скидок:
В каждом промокоде есть подробные поля:
Думаю это можно реализовать с помощью MIGX. Нужно ли использование minishop в данном случае? Или может совершенно другим путём пойти?)
p.s. Импорт всех промокодов будет осуществляться из CSV файла, поэтому думаю использовать minishop, так как там есть встроенный импорт, который можно настроить по крону.
У каждого магазина может быть несколько промокодов/скидок:
В каждом промокоде есть подробные поля:
Думаю это можно реализовать с помощью MIGX. Нужно ли использование minishop в данном случае? Или может совершенно другим путём пойти?)
p.s. Импорт всех промокодов будет осуществляться из CSV файла, поэтому думаю использовать minishop, так как там есть встроенный импорт, который можно настроить по крону.
Fenom Tickets ms2Gallery
Вызываю getTickets в обычном режиме – всё хорошо, в Fenom – картинки не хотят показываться)
Cron + .sh + php
Доброго времени суток!
Пытаюсь выполнять ряд команд в файле .sh с помощью cron.
Среди команд есть на удаление папки/файла, и затем запуск импорта в minishop2.
Если вручную запускать из консоли, всё хорошо, а по крону никак не хочет импортировать.
Подскажите, пожалуйста, куда копать?)
Пытаюсь выполнять ряд команд в файле .sh с помощью cron.
Среди команд есть на удаление папки/файла, и затем запуск импорта в minishop2.
Если вручную запускать из консоли, всё хорошо, а по крону никак не хочет импортировать.
Подскажите, пожалуйста, куда копать?)
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]]
работает, как надо.Может кто сталкивался с подобным? Или ну его?!)) Оставить как есть?)
Список ресурсов в TV не выводит новый ресурс
Создал TV, тип ввода – Список ресурсов, структура примерно такая:
Лимит установлен 0. Не могу понять, отчего так.
– Архив
– 2015
– Декабрь 2015
– Ноябрь 2015
– Октябрь 2015
–2014
– Декабрь 2014
– Ноябрь 2014
– Октябрь 2014
В ресурсах, где указывается TV выводится список всех дочерних Архива, кроме нового – Декабрь 2015. Лимит установлен 0. Не могу понять, отчего так.
Сортировка статей с группировкой по родителю
Есть несколько разделов на сайте, вызов статей таким образом:
НО статьи отсортированы по возрастанию.
Как их отсортировать по убыванию? Может кто сталкивался
[[!getTickets?
&parents=`0`
&leftJoin=`{
"parentResource": {
"class" : "Ticket"
, "alias" : "parentResource"
, "on" : "parentResource.id = Ticket.parent"
}
}`
&select=`{
"Ticket": "*"
,"parentResource": "parentResource.menuindex as parentindex"
}`
&sortby=`{"parentindex":"ASC","menuindex":"DESC"}`
&groupby=`parent`
&showLog=`1`
]]
Всё отсортировано по menuindex родителя(раздела). НО статьи отсортированы по возрастанию.
Как их отсортировать по убыванию? Может кто сталкивался
YandexMaps – показать на карте
Возник маленький вопрос по YandexMaps.
На сайте есть Категории компаний: Косметика, Отдых и т.д.
Внутри которых соответственно сами компании, с координатами. Все компании отлично отображаются на карте, можно отключать вывод по категориям. А как сделать ссылку вида Показать на карте, никак не могу додуматься.
Вот кусок кода, который в tpl.yandexMaps закинул:
Как я понимаю, нужно связать данные из JSON с ссылкой, в которой, например, указан ID ресурса(компании), и если кликнуть на ссылку, то на карте откроется balloon с информацией. Только как это сделать, пока не хватает знаний.
Подскажите, пожалуйста, как реализовать?
На сайте есть Категории компаний: Косметика, Отдых и т.д.
Внутри которых соответственно сами компании, с координатами. Все компании отлично отображаются на карте, можно отключать вывод по категориям. А как сделать ссылку вида Показать на карте, никак не могу додуматься.
Вот кусок кода, который в tpl.yandexMaps закинул:
$('.show-on-map').bind('click', function (e) {
map.panTo(item.geometry.getCoordinates());
if(item.balloon.isOpen()) {
item.balloon.close();
}
else {
item.balloon.open();
}
return false;
});
Пример взял отсюда: dimik.narod.ru/ymaps/grouping.htmlКак я понимаю, нужно связать данные из JSON с ссылкой, в которой, например, указан ID ресурса(компании), и если кликнуть на ссылку, то на карте откроется balloon с информацией. Только как это сделать, пока не хватает знаний.
Подскажите, пожалуйста, как реализовать?
Поочередный вывод статей из разных разделов Ticket
Структура сайта:
Раздел 1
– Статья 1
– Статья 2
– Статья 3
Раздел 2
– Статья 1
– Статья 2
– Статья 3
Раздел 3
– Статья 1
– Статья 2
– Статья 3
Необходимый вывод на сайте: Раздел1-Статья1 Раздел2-Статья1 Раздел3-Статья1
Загрузить ещё
Раздел1-Статья2 Раздел2-Статья2 Раздел3-Статья2
... и т.д.
Как подобное проделать с Tickets? Чтобы из каждого раздела по одному вывести, а следующие подгружать по кнопке. [[!pdoPage?
&element=`getTickets`
&limit=`9`
&fastMode=`0`
&parents=`0`
&templates=`3`
&tpl=`tpl.cardNews.Mainpage`
&depth=`0`
&innerJoin=`{
"Children": {"class":"Ticket"}
}`
&select=`{
"Children":"*"
}`
&groupby=`Ticket.id`
&ajaxMode=`button`
&ajaxTplMore=`@INLINE <button class="btn btn-more">Загрузить ещё...</button>`
&showLog=`1`
]]
Вывести все поисковые запросы на сайте
Доброго времени суток. Возник вопрос, каким образом можно вывести популярные поисковые запросы на сайте, что-то вроде облака тегов, но из запросов.
[[!pdoPage?
&class=`mseQuery`
&tpl=``
&showLog=`1`
]]
[[!+page.nav]]