• SanDev.pro
  •  › 
  • Комментарии
  •  › 
  • Страница 14
foto
Администратор 6 февраля 2018 11:23 #

Мультивыбор в доп. полях xFields

Перекрестные ссылки работают, пример.

И при выходе все через пробелом разделяется

По умолчанию в DLE при использовании перекрестных ссылок в качестве разделителя слов используется запятая.
В какой-то момент видимо я решил использовать не запятую, а знак табуляции (в браузере выглядит как пробел), чтобы можно было в значении поля использовать запятую. Сейчас подправлю код, сделаю запятую разделителем, чтобы вывод был стандартным.

UPD: Изменены части кода по инструкции возле: "Найти строку: ~862" и "Найти строку: ~1513"
0
foto
Администратор 29 января 2018 17:35 #

Простые заголовки (метатеги)

Вручную заполненный заголовок имеет наивысший приоритет.
Если вам не нужен заполненный заголовок вручную - просто очистите это поле.
0
foto
Администратор 25 января 2018 22:28 #

Простые заголовки (метатеги)

Совершенно верно, catlist так же работает.
Но стандартными средствами шаблона никак не проверить - заполнен метатег description или нет.
0
foto
Администратор 25 января 2018 20:06 #

Простые заголовки (метатеги)

Для этого нужно использовать хак TplIf.
[if !descr]
    [description] ... [/description]
[/if]
0
foto
Администратор 25 января 2018 15:51 #

Miniposter PRO by Sander v.3.4.4

Если я правильно понял, вы хотите объединить все конфиги всех модулей на сайте в один общий файл?
Прон в чистой форме...

Именно этим вы и занимаетесь.

Зачем мне его подключать, если он уже и так подключён в init.php?

Про инкапсуляцию и пространство имен вы явно не слышали. В крайнем случае можно использовать конструкцию:
<?php
return $your_config;


Ну и кто из нас немножечко не разбирается? ;)

По-моему это очевидно.

Раз уж вы так хорошо разбираетесь в php - пишите свои собственные модули с тем функционалом который вас будет устраивать на все 100%.
+2
foto
Администратор 25 января 2018 01:03 #

Miniposter PRO by Sander v.3.4.4

Как вы судите кто знаком, а кто не знаком?

Открыть config.php заменить его содержимое на:
<?php
return include "Ваш/Избранный/Путь.php";

Вот и все решение вашей надуманной проблемы.
Это не сложно для человека, который немножко разбирается в php. Вы же этого не знали.
+1
foto
Администратор 24 января 2018 14:27 #

Miniposter PRO by Sander v.3.4.4

Вы видели что будет если копирайт будет на оригинале, а потом оригинал уменьшить?

Я видел как копирайт закрывает около 40% изображения. И это смотрится ужасно.

Ну да, кастомизация это явно не ваше всё...

Не понимаю сути претензии. Если вы не знакомы с PHP и не знаете как с ним работать, то о какой кастомизации может идти речь? Что вам даст открытое подключение файла конфига?

А что же делать, если нужен именно функционал {poster src='{image-1}' width='150'}

Вы можете продолжать использовать версию v2.
0
foto
Администратор 24 января 2018 13:38 #

Miniposter PRO by Sander v.3.4.4

А где вотермарк?

Нету и не планируется. При желании вы сможете самостоятельно добавить данный функционал. Но я не вижу в нем необходимости. Защищать вотермарком нужно оригинальное исходное изображение, а не уменьшенную копию.

Конфиг наконец то вынесен из зашифрованного кода?

Нет. Не вижу в этом необходимости.

Насколько это можно кастомизировать под себя?

От нуля до бесконечности.

v2 будет как то развиваться/обновляться?

Он развился и обновился в v3.
+1
foto
Администратор 23 января 2018 23:14 #

Простые заголовки (метатеги)

Добавил перевод на русском
0
foto
Администратор 22 января 2018 21:17 #

Хлебные крошки в Speedbar + RDFa

И в DLE и в моем варианте проблем нету.
http://color.sandev.pro/3999-mobilnyy-telefon-xiaomi-redmi-note-3-pro-dual-sim-16gb-gray.html
Цветофильтр » Телефоны » Мобильные телефоны » Мобильный телефон Xiaomi Redmi Note 3 Pro Dual Sim 16Gb Gray

Где:
"Телефоны" - категория
"Мобильные телефоны" - подкатегория категории "Телефоны"

Но если у вас новость отмечена в подкатегории, а потом внизу так же дополнительно отмечена категория, то основной будет считаться последняя отмеченная.
0
foto
Администратор 18 января 2018 22:54 #

Miniposter PRO by Sander v.3.4.4

Обновление бесплатно.
0
foto
Администратор 17 января 2018 15:45 #

Хлебные крошки в Speedbar + RDFa

Микроразметка для хлебных крошек и для рейтинга - это разные никак не связанные вещи.
+1
foto
Администратор 17 января 2018 15:45 #

Хлебные крошки в Speedbar + RDFa

speedbar - это и есть хлебные крошки.
нет спидбира - нет крошек.
нет крошек - нет разметки.
+1
foto
Администратор 15 января 2018 14:16 #

Расширение функционала стандартного рейтинга "Нравится" - "Не нравится"

После строки
$rating_plus = $rating + $rate_minus;

Вставить:
$plus_bar = round(100 * $rating_plus / $vote_num);
$minus_bar = 100 - $plus_bar;

Ниже сверстать полоску бара используя значения переменных $plus_bar и $minus_bar.
Пример:
<div class="rate-bar-wrap">
    <div class="rate-bar-plus-var>{$plus_bar}%</div>
    <div class="rate-bar">
        <div class="rate-bar-plus" style="width:{$plus_bar}%;"></div>
    </div>
    <div class="rate-bar-minus-var>{$minus_bar}%</div>
</div>
0
foto
Администратор 15 января 2018 14:09 #

Miniposter PRO by Sander v.3.4.4

Добавлен интерфейс для более удобного управления и наглядности по статистике.
Добавлена возможность пропускать гифки, для сохранения анимации в них.
Добавлена возможность сохранения исходного имени файла.
Добавлена возможность использовании утилиты jpegoptim для оптимизации изображений, для того же google pagespeed.
+2
foto
Администратор 13 января 2018 16:07 #

Быстрая подписка на комментарии

Значит однозначно проверяйте соответствие кодировки файла в котором вставили код кнопки и кодировки сайта.
0
foto
Администратор 13 января 2018 14:01 #

Быстрая подписка на комментарии

Поправил, обновите код файла
engine/ajax/subscribe.php
0
foto
Администратор 20 декабря 2017 13:21 #

Хлебные крошки в Speedbar + RDFa

engine/engine.php
Найти строку:
	elseif ($do == 'tags') {

После нее вставить:
		$tag = str_replace(",", " + ", $tag);
0
foto
Администратор 14 декабря 2017 13:53 #

PIN-bot by Sander

Открыть файл engine/modules/pinbot/ajax.php
Найти строку:
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) die("Hacking attempt!");

Заменить на:
if (!isset($_SERVER['HTTP_REFERER']) || clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) die("Hacking attempt!");


Найти строку:
if($_POST['do']=='click'){

Заменить на
if (isset($_POST['do']) && $_POST['do'] == 'click') {
0
foto
Администратор 13 декабря 2017 11:30 #

Быстрая подписка на комментарии

К указанному файлу закрыт доступ.
0
foto
Администратор 12 декабря 2017 20:10 #

Быстрая подписка на комментарии

Смотреть сайт надо.
Ошибку будет видно или в консоли или во кладке network.
0
foto
Администратор 12 декабря 2017 20:09 #

Miniposter PRO v2 by Sander

Обратитесь к автору модуля, чтобы он подключил эти строки в нужном месте ajax файла. Подключать нужно внизу, перед строкой echo ...
require_once ENGINE_DIR."/mods/miniposter/index.php";
$tpl->result['content'] = preg_replace_callback("#\\{poster(.+?)\\}#i","mpic",$tpl->result['content']); 

где $tpl->result['content'] - переменная с контентом, заменить на свою при необходимости.
0
foto
Администратор 15 ноября 2017 23:44 #

Хлебные крошки в Speedbar + RDFa

Короткое название сайта - что угодно, но что-то что логически будет соответствовать главной странице сайта. Чтобы в гугле отображалось красиво и понятно.

?>

в конце не обязателен и даже скорее вовсе не нужен.
Желательно только чтобы последняя строка была просто пустая.
+1
foto
Администратор 15 ноября 2017 18:17 #

Miniposter PRO v2 by Sander

Затрудняюсь что-либо подсказать.
Возможно у интеркассы какие-то неполадки.
Попробуйте позже, лучше завтра.
0
foto
Администратор 15 ноября 2017 15:47 #

MultiTags by Sander

Это модуль x-Sort
0
foto
Администратор 15 ноября 2017 15:46 #

xSort by Sander v.1.5.4

Добрый день.
Нет, готового такого модуля нету.
0
foto
Администратор 11 ноября 2017 15:39 #

Простые заголовки (метатеги)

Чтобы составить простейший шаблон для заголовка в engine.php необходимы как минимум поверхностные знания в PHP.
Да и то, поверхностные нужны только чтобы человек смог сам внести изменения в написанный код. А вот чтобы самостоятельно составить формулу/условия нужны уже немножко большие знания.

Данный хак же не требует вообще никаких знаний, кроме знания тегов шаблона DLE, по которым есть наглядный мануал.
+1
foto
Администратор 7 ноября 2017 14:32 #

PIN-bot by Sander

Открыть /engine/modules/pinbot/pinpic.php
После первой строки
<?PHP

Вставить:
error_reporting(E_ALL ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
0
foto
Администратор 6 ноября 2017 15:46 #

Miniposter PRO v2 by Sander

Если у вас ionCube Loader версии 6.x то просто переименуйте файл лицензии с 5.6 на 7.1
+1
foto
Администратор 6 ноября 2017 15:45 #

Miniposter PRO v2 by Sander

Я думал об этом, но не придумал, что можно в него добавить/улучшить и отказался от этой затеи.
0
foto
Администратор 1 ноября 2017 14:08 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Да.
0
foto
Администратор 31 октября 2017 13:45 #

TPL-IF by Sander v.2.3

Пожалуй тоже вариант.
Но он исключает возможность приоритета.
К примеру:
[if rating>4 && comm_num>10 || news_read>500] ... [/if]

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

А если нужна иная логика:
Чтобы текст был показан только если хороший рейтинг и у новости есть комментарии или много просмотров.

PS. Зачем дублировать trim() в цикле если его можно вынести в функцию.
Почему не используешь foreach ?
0
foto
Администратор 31 октября 2017 13:22 #

TPL-IF by Sander v.2.3

[if rating>4 && comm_num>10 || news_read>100 && votes>5] ... [/if]
Какой приоритет условий, где скобки ставить?
Казнить нельзя помиловать.
[if rating>4 && (comm_num>10 || news_read>100) && votes>5] ... [/if]
Если так, то все логично:
Если рейтинг хороший и (много комментов или просмотров) и много оценок то ...
Будет показан текст, если у новости хорошая активность и хороший рейтинг со многими оценками

А так уже имеем другую логику...
[if (rating>4 && comm_num>10) || (news_read>100 && votes>5)] ... [/if]
Те же параметры. Но уже будет другой результат.
Получится, что у новости может быть много просмотров, но низкий рейтинг. А может быть только одна хорошая оценка, но много комментов.
0
foto
Администратор 31 октября 2017 13:20 #

TPL-IF by Sander v.2.3

Сам функционал я его еще год назад сделал, лень было оформить и опубликовать :)
+1
foto
Администратор 29 октября 2017 21:46 #

Light-Chat by Sander

Это будет несколько проблематичо.
Лучше используйте стандартные .dialog() окна. Их внешний вид, кстати, можно относительно легко настроить аналогичным образом как и в чате (собственно у меня на сайте такой же стиль).
0
foto
Администратор 26 октября 2017 21:06 #

TPL-IF by Sander v.2.3

Это печально, нагрузка и скорость при обилии условий будет не очень маленькой, тестировал шаблонизатор DLE и свой нативный на PHP подобной логике, разница в десятки раз. Ваш работает по подобию DLE-шного, только условия посложнее.
В полной новости каждый раз выполняться обработка более 100 функций preg_* и более 200 str_replace и более 300 if-else. И все они выполняются практически мгновенно. На фоне этого нагрузка от модуля ничтожная.
Нативность - это конечно хорошо, но в таком случае необходимо исключить возможность редактирования шаблонов через web-интерфейс.

Просто хотел понять, можно ли его в своих модулях использовать как шаблонизатор, или всё таки придётся и DLE-шный подключать.

DLE-шный шаблонизатор не обязательно подключать. Модуль обработает любой шаблон согласно заданным параметрам.
Нижеуказанный код подключается перед $tpl->compile('content');
		TplIf::rowSet($row);
		$tpl->copy_template = preg_replace_callback( 
			"#...#is", 
			"myFunction", 
			$tpl->copy_template
		);

Вы можете перед $tpl->compile('content'); вставить var_dump($tpl->copy_template); и увидите с какими данными работает модуль. Ему без разницы как и что выводится в шаблоне. Он работает по своим ключам.
0
foto
Администратор 26 октября 2017 18:05 #

TPL-IF by Sander v.2.3

Ваш метод основан на str_replace и т.д. или компилируемый код (преобразование в php код)?
Ни то ни другое. preg_match, preg_replace_callback, switch, if.

Имел ввиду попадает ли работа модуля в кеш кратких новостей например, или каждый раз будет идти обработка шаблона?
В короткой новости (и custom) кешируется полностью весь контент, готовый сформированный шаблон. Все теги соответственно тоже. В полной новости кешируется только запрос в БД, обработчик выполняется каждый раз.

В принципе как у Gamer'а, но у него вроде как в любых шаблонах работает.
Может реализуете во всех шаблонах? Тогда цены ему не будет.
Я подумаю над этим.

А как вывести саму переменную шаблоне? Только стандартным методом через $tpl->set()?
Модуль не имеет никакого отношения к выводу данных.
0
foto
Администратор 26 октября 2017 10:24 #

TPL-IF by Sander v.2.3

Можно сравнение с аналогичным модулем от Gamer'а?
Вы можете ознакомиться с описанием модулей и увидеть отличия. Как программно реализован его модуль мне не известно.

Как тут дела с кешированием?
Работа с кешем в данном случае будет занимать больше времени, что сама работа модуля.

В инклюдных шаблонах тоже работает?
Да.

Можно ли заставить работать во всех шаблонах? Включая доп.модули?
Можно, но не во всех. В некоторых шаблонах это будет проблематично, к примеру addcomments.tpl, addnews.tpl, info.tpl и т.п.

Привязка переменных идёт по колонкам таблицы данных, или по $tpl->set()? Или переменные вообще предустановленные, и для добавления своих кастомных колонок нужно править код модуля?

Модуль принимает массив данных, в случае с новостями и комментариями это переменная $row
TplIf::setRow($row);

С тем же успехом можно скормить ассоциативный массив:
TplIf::setRow([
    'field_string' => 'значение',
    'field_integer' => 54,
    'field_date' => 1509002550
]);


В шаблоне будет:
[if field_integer>20] ... [/if]
[if date.field_date='2017-10-26'] ... [/if]
0
foto
Администратор 23 октября 2017 23:13 #

Самый просматриваемый материал за текущий день

Последний пункт установки повторить для engine/modules/show.full.php
+1
foto
Администратор 23 октября 2017 14:50 #

Хлебные крошки в Speedbar + RDFa

Был маленький недочет с этим itemprop. Для RDFa и микроразметки он по разному должен быть прописан.
На гугловском валидаторе проверил, оба варианта работают исправно, ошибок нет.
0
foto
Администратор 16 октября 2017 15:48 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Вам нужен интернет магазин, а не модуль корзины заказов.
Если реализовывать в полной мере весь перечисленный вами фукнционал, то и стоимость модуля увеличиться раза в 2-3 раза. Однако я этого делать не стану.
Настоятельно рекомендую вам использовать специализированные движки или фреймворки такие как bitrix, magento или OpenCart.
Данный модуль вам не подойдет.
0
foto
Администратор 14 октября 2017 20:52 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Как хранятся остатки и параметры товара?

Остатки хранятся в стандартном доп.поле.

Как загружаются и где хранятся изображения доп.товаров?

Используется функционал DLE. Модуль только берет значение адреса из указанного в настройках поля.

Можно ли настраивать вычитание товара из остатков при определённом статусе заказа

Вычитание происходит когда статус заказа меняется с "новый" на любой другой кроме "отменен". Если заказ был принят в работу, а потом по каким-либо причинам будет отменен, то остаток необходимо будет вручную обновить в новости. Хотя подумаю над этим, чтобы в новости возобновлялся остаток при смене статуса на "отменен".

Можно ли в шаблоне делать условия в зависимости от количества остатка

Для этого можно использовать хак Условия IF. В ближайшее время постараюсь выложить обновленную версию с более расширенным функционалом if ... elseif ... else ...

При выборе параметра товара, меняется ли везде изображение данного товара

Да. Физически параметры - это отдельные новости, которые программно связаны с составным товаром и не отображаются в самом DLE.
http://d13.sandev.pro/mobile_phones/26-mobilnyy-telefon-nokia-105.html#option_id=28
Или же по прямой ссылке (прямой доступ к параметру закрыт, выполняется редирект):
http://d13.sandev.pro/mobile_phones/28-mobilnyy-telefon-nokia-105.html

Можно ли снимать показ товара

Нет. Пока не вижу необходимости в подобном функционале. При желании можно шаблонно скрывать конструкцию типа такой:
[if xfvalue_allow_cart && xfvalue_cart_count] тут кнопка [elseif !xfvalue_cart_count] товар закончился [else] снят с продажи [/if]


Будет ли интеграция с SMS

В общем релизе - нет. Кто захочет подключит и пропишет самостоятельно.

Будет ли опция в настройках модуля

Скорее всего сделаю.

формировать в шаблоне ссылку с трек-номером

Скорее всего сделаю.

Можно ли стоимость доставки корректировать менеджером, после обработки им заказа?

Да, это уже давно можно

Можно ли подключить калькулятор

Если у вас есть такой калькулятор, то вы без проблем сможете подключить его в шаблон админки самостоятельно.

Можно ли будет сделать возможность привязки определённого клиентского аккаунта к определённому менеджеру

Слишком индивидуальный функционал. Его можно реализовать, но только в частном порядке.

Можно ли будет сделать вывод общей суммы всех завершённых заказов данного пользователя

SELECT sum(`cost`) as sum FROM dle_cart WHERE user_id = 123 AND status = 3;

Стоимость доставки нужно будет подсчитывать отдельным запросом.

Будет ли в будущем переход в другие группы в зависимости от заказов в модуле, скидки, купоны и т.д.?

Пока не планируется.

Будет ли ограничение доступа к тем или иным функциям для разных групп пользователей?

На данный момент есть разграничение на 2 группы. Админ и менеджеры.
Менеджеры могут только управлять заказами.

Будет ли другие способы онлайн оплаты с меньшими комиссиями, например тот же WM или ЯД

WM и так есть, в первую очередь.
webmoney, megakassa, interkassa, robokassa - у всех у них одинаковый алгоиртм работы и подключить еще одну кассу не составит труда. А вот к примеру по paypal или "Сбербанк онлайн" я уже не подскажу.
С DLE-Billing в принципе можно будет подружить. Достаточно будет написать обработчик который будет вычитать баланс и менять статус заказа.
Но это будет отдельный скрипт, на отдельной странице или AJAX, без разницы.

Можно ли настраивать возможность онлайн оплаты, лишь при определённых статусах заказа?

Именно такого функционала нету. Но ведь пользователь не сможет оплатить товар если не получит ссылку на оплату.

И самое главное, будет ли ПОЛНОЕ ЛОГИРОВАНИЕ ВСЕХ

На сайте действий как таковых нет. Только добавление заказа.
В админке идет лишь частичное логирование. Т.е. идет запись что такой-то даты тот-то отредактировал информацию о заказе или изменил товары/количество, сменил статус и т.п.

Будет ли полный обзор столь масштабных нововведений

Будет.

Отдельно хочу сделать крайне важное замечание.
Данный модуль позволяет лишь организовать заказ товаров на базе DLE. Это не полноценный интернет магазин со всеми его особенностями, акциями, скидками распродажами, фильтрами, рассылками и т.д. и т.п.
0
foto
Администратор 11 октября 2017 00:06 #

xSort by Sander v.1.5.4

Но ведь для этого можно использовать JS.
0
foto
Администратор 10 октября 2017 23:43 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Попрошу не обвинять голословно.
В модуле идет связь именно по user_id, а не по логину как вы пишете.

В скайпе я вам уже отвечал. Я готов дать ответы по работе и использованию модуля, но не расписывать подробно бизнес-логику и структуру.
0
foto
Администратор 10 октября 2017 23:30 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Если кратко, то добавлена возможность учета остатка на складе и добавлена возможность создания параметров для товара.
Т.е. если ранее необходимо было создавать 2 различные публикации:
Xiaomi Redmi 4a 2Gb RAM 32Gb Grey
Xiaomi Redmi 4a 2Gb RAM 16Gb Gold

То теперь это будет один товар "Xiaomi Redmi 4a 2Gb RAM" и остальное параметры:
16Gb Grey
32Gb Grey
16Gb Gold
32Gb Gold


Так же полностью переработан JS обработчик модуля и добавлены несколько новых кнопок. Прикладываю скриншоты с инструкции по установке:
+1
foto
Администратор 10 октября 2017 23:26 #

DLE-Cart v1.3.5 Корзина заказов by Sander - upd: 08.04.2020

Выложил версию 1.3 для скачивания.
Описанием чуть позже займусь.
Но важный момент. На данный момент эта версия может быть установлена только с нуля. Все старые данные модуля будут удалены. Скрипт для обновления буду делать чуть позже. Краткий список обновлений сейчас напишу в другом комментарии.
0
foto
Администратор 10 октября 2017 23:22 #

xSort by Sander v.1.5.4

К сожалению нет. В поле должно быть только число без пробелов.
Допустимо использование только целых и дробных чисел (через точку).
0
foto
Администратор 25 сентября 2017 17:27 #

PIN-bot by Sander

Проблема была в jquery.
JS код модуля прописан в самом шаблоне и выводится в теле страницы, а jquery был подключен в подвале. Из-за чего не работал jquery код модуля.
Когда тег jsfiles был убран, jquery автоматом подключается в шапке тегом headers
+1
foto
Администратор 21 сентября 2017 10:31 #

Мультивыбор в доп. полях xFields

Не хочу обещать что-либо.
Думал, что еще в начале месяца сделаю, но тут в реале задач навалилось.
Да и модуль по чуть-чуть что-то меняю/добавляю.
Сделал вывод параметров, понял что нужно добавить еще возможность использования с другим дизайном, пришлось частично переделывать.
Сейчас так и вовсе практически полностью переписан JS обработчик модуля.
+1
foto
Администратор 21 сентября 2017 09:42 #

PIN-bot by Sander

Нужно смотреть по месту.
Работать точно должен.
0
© Sander-Development. 2009-2024.
При копировании, ссылка на источник обязательна.