Николай
С нами с 11 ноября 2017; Место в рейтинге пользователей: #1635Надёжное скрытие внешних ссылок
Хотелось бы поделиться с сообществом полезной находкой, а заодно вновь поднять вопрос касательно SEO.
Не секрет, что попытки избежать фильтров и потерь веса своего сайта, путем применения тегов типа noindex, или редиректа через внутренюю страницу, особой пользы уже не приносят. Порой хочется вообще избежать каких бы то нибыло внешних ссылок, но сделать это обычно затруднительно. Также, лично для меня всегда встаёт вопрос о справедливости — если я к примеру использую чей-то материал, то моя совесть говорит мне о том, что источник этого материала по праву заслуживает свою долю трафика. Я хотел бы, что бы и к моим авторским материалам относились также, поэтому справедливо будет и самому следовать тому же правилу. Но что касается разделов типа форумов, блогов, то там хотелось бы все внешние ссылки надёжно закрыть. Нашлось одно интересное решение, которое, скорее всего пока успешно работает.
Не секрет, что попытки избежать фильтров и потерь веса своего сайта, путем применения тегов типа noindex, или редиректа через внутренюю страницу, особой пользы уже не приносят. Порой хочется вообще избежать каких бы то нибыло внешних ссылок, но сделать это обычно затруднительно. Также, лично для меня всегда встаёт вопрос о справедливости — если я к примеру использую чей-то материал, то моя совесть говорит мне о том, что источник этого материала по праву заслуживает свою долю трафика. Я хотел бы, что бы и к моим авторским материалам относились также, поэтому справедливо будет и самому следовать тому же правилу. Но что касается разделов типа форумов, блогов, то там хотелось бы все внешние ссылки надёжно закрыть. Нашлось одно интересное решение, которое, скорее всего пока успешно работает.
TvTable - таблица
Добрый день! Понадобилась мне тут табличка в виде Тв-параметра, в которой можно менять не только кол-во строк, но и столбцов. Поэтому migx не подходит (
В общем, было найдено решение, но как оказалось оно для EVO =(
В итоге взяла его за основу и переписала.
В общем, было найдено решение, но как оказалось оно для EVO =(
В итоге взяла его за основу и переписала.
Динамическая кнопка Купить / В корзине
Появилась необходимость реализовать динамическую кнопку Купить / В корзине.
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить tplOut:
Чанк В корзине tplIn:
Скрипт (требуется подключенный jQuery)
Сниппет myButton:
Кнопка вызывается таким образом:
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить tplOut:
<button type="submit" class="btn btn-cart btn-primary" name="ms2_action" value="cart/add">
Купить
</button>
<button type="submit" class="btn btn-checkout btn-success hidden" name="ms2_action" value="cart/add">
В корзине
</button>
Чанк В корзине tplIn:
<button type="submit" class="btn btn-checkout btn-success" name="ms2_action" value="cart/add">
В корзине
</button>
Скрипт (требуется подключенный jQuery)
if (typeof(miniShop2) != 'undefined') {
// кнопки В корзину/Оформить
miniShop2.Callbacks.Cart.add.response.success = function(response) {
miniShop2.Order.getcost();
miniShop2.sendData.$form.find('.btn-cart').addClass('hidden');
miniShop2.sendData.$form.find('.btn-checkout').removeClass('hidden');
};
miniShop2.Callbacks.Cart.remove.response.success = function() {
miniShop2.sendData.$form.find('.btn-cart').removeClass('hidden');
miniShop2.sendData.$form.find('.btn-checkout').addClass('hidden');
};
}
Сниппет myButton:
<?php
// Параметры
$idd = $modx->getOption('idd', $scriptProperties, $modx->resource->id);
$tplIn = $modx->getOption('tplIn', $scriptProperties, 'tplIn'); //Можно писать так: ('tplIn', $scriptProperties, '@INLINE Товар в корзине, кол-во – [[+count]], цена = [[+price]].');
$tplOut = $modx->getOption('tplOut', $scriptProperties, 'tplOut'); // '@INLINE Товара нет в корзине.'
// Классы для работы
$pdo = $modx->getService('pdoTools');
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($modx->context->key, $scriptProperties);
$cart = $miniShop2->cart->get();
// Поехали
$found = false;
foreach($cart as $product) {
if ($product['id'] == $idd) {
$found = $product;
break;
}
}
return $found
? $pdo->getChunk($tplIn, $found)
: $pdo->getChunk($tplOut);
Кнопка вызывается таким образом:
[[!myButton? &idd=`[[+id]]`]]
Использование тегов MODX внутри @INLINE-чанков pdoTools
Многие знают, что в pdoTools в качестве шаблона вывода можно указывать @INLINE-код, чтобы не создавать лишних сущностей.
Некоторые знают, что в таких конструкциях нельзя вызывать сниппеты, не работают фильтры ввода-вывода. А в документации про это даже картинка саркастическая есть.
Хочу раскрыть небольшую тайну, как можно это ограничение иногда обойти… Подробности под катом :-Р
[[!pdoResources?
&tpl=`@INLINE <li>[[+pagetitle]]</li>`
]]
Некоторые знают, что в таких конструкциях нельзя вызывать сниппеты, не работают фильтры ввода-вывода. А в документации про это даже картинка саркастическая есть.
Хочу раскрыть небольшую тайну, как можно это ограничение иногда обойти… Подробности под катом :-Р
Ускоряем админку MODX до нереальной скорости.
В настройках системы изменяем ключ manager_html5_cache в Да.
В дереве документов по пути /manager/cache.manifest.php Удаляем все и копируем код ниже, после сохраняем и наслаждаемся эффектом:
(Осторожно однократно с генерирует большой трафик! И не будет работать в старых браузерах!)
В дереве документов по пути /manager/cache.manifest.php Удаляем все и копируем код ниже, после сохраняем и наслаждаемся эффектом:
(Осторожно однократно с генерирует большой трафик! И не будет работать в старых браузерах!)
Вывод товаров с определенным цветом
Вывод товаров определенного цвета:
[[!msProducts?
&parents=`0`
&innerJoin=`{"Options":{"class":"msProductOption"}}`
&groupby=`msProduct.id`
&where=`{"Options.key":"color","Options.value:IN":["Белый","Белая"]}`
]]
Вывод товаров с нужным именем файла-изображения:[[!msProducts?
&parents=`0`
&innerJoin=`{"msProductFile":{"alias":"File","on":"msProduct.id = File.product_id"}}`
&groupby=`msProduct.id`
&where=`{"File.name:LIKE":"%IMG_0049%"}`
]]
Не больше 2х LIKE, если не знаешь точного имени:&where=`{"File.name:LIKE":"%file1%","OR:File.name:LIKE":"%file2%"}`
или сколько угодно в IN, если знаешь:&where=`{"File.name:IN":["file1.jpg","file2.jpg"]}`
Повышаем конверсию на сайте...
Цена в рублях по курсу доллара в miniShop2
Как выводить в miniShop2 сумму товара в рублях, если цена указана в долларах? Есть плагин парсера курса валют.