Вход • Регистрация

Всего найдено: 236

  • 06 января 2019 г. , редакция: 1546803061
  • Так получилось, что на мой ископаемый ноут из современных осей, к текущему моменту, втыкается только линукс. После недели юзания минта температура между булок у меня почти пришла в норму, возник вопрос - каким путем с минимальным применением мозга создать под линуксом локальный сервер? Гайды видел, но тут есть бородатые программисты - может, присоветуете что-нибудь годное?
  • 13 ноября 2018 г.
  • Согласен, дичь, там это все надо в модели спрашивать-кешировать-че-там-еще. Но. Там сайт с посещаемостью аж до 25 чел/сутки с каталогом аж на 200+/- позиций. Даже с учетом того, что там все через жопу, на производительности это не сказывается никак, так что в данном случае мне по итогу пофиг. Так что - да, не стоит идти прямо вот таким путем; но, тут попросили поделиться опытом - вот вам жертва опытов))
  • 12 ноября 2018 г.
  • чет такое (гуглю понравилось, но толку ноль)
    Код
    <?php
    /**
    * Шаблон страницы товара
    *
    * @package DIAFAN.CMS
    * @author diafan.ru
    * @version 6.0
    * @license http://www.diafan.ru/license.html
    * @copyright Copyright (c) 2003-2016 OOO «Диафан» (http://www.diafan.ru/)
    */

    if (! defined('DIAFAN'))
    {
    $path = __FILE__; $i = 0;
    while(! file_exists($path.'/includes/404.php'))
    {
    if($i == 10) exit; $i++;
    $path = dirname($path);
    }
    include $path.'/includes/404.php';
    }

    if (stripos(BASE_PATH.$result['img'][0]["vs"]['medium'], BASE_PATH.'/') !== false)
    {
    $img_correction = str_ireplace(BASE_PATH.'/', BASE_PATH, BASE_PATH.$result['img'][0]["vs"]['medium']);
    }
    else
    {
    $img_correction = (BASE_PATH.$result['img'][0]["vs"]['medium'] ? BASE_PATH.$result['img'][0]["vs"]['medium'] : '');
    }

    echo '<div class="good-photo">
    ';
    if (!empty($result["img"]))
    {
    if (stripos(BASE_PATH.$result["img"][0]["src"], BASE_PATH.'/') !== false)
    {
    $img_correction = str_ireplace(BASE_PATH.'/', BASE_PATH, BASE_PATH.$result["img"][0]["src"]);
    }
    else
    {
    $img_correction = (BASE_PATH.$result["img"][0]["src"] ? BASE_PATH.$result["img"][0]["src"] : '');
    }
    echo ' <div class="picture">
    <amp-img src="'.$img_correction.'" width="'.$result["img"][0]["width"].'" height="'.$result["img"][0]["height"].'" alt = "'.$result["img"][0]["alt"].'" layout="responsive"></amp-img>
    </div>
    ';
    }
    echo ' </div>
    <div class="good-description">
    '.$this->get('buy_form', 'shop', array("row" => $result, "result" => $result)).'
    <div class="call-now">
    <a href="tel:+79219667737">
    <amp-fit-text height="40" layout="fixed-height">
    Позвонить и записаться
    </amp-fit-text>
    </a>
    </div>
    ';
    if (!empty($result['text']))
    {
    echo ' <div class="shop-text">
    '.$this->htmleditor($result['text']).'
    </div>
    ';
    }
    echo '<div class="addcost-text">
    ';
    $id_addcost = DB::query("SELECT additional_cost_id FROM {shop_additional_cost_rel} WHERE element_id=%d", $result["id"]);
    if (!empty($id_addcost))
    {
    $addtext='';
    $json_addtext = '';
    while ($row = DB::fetch_array($id_addcost))
    {
    $text_addcost = DB::query_fetch_array("SELECT name1, text1, price, percent FROM {shop_additional_cost} WHERE id=%d AND trash = '0' AND act1 = '1'", $row["additional_cost_id"]);
    $addtext .= ' <p>'.$text_addcost["text1"].'</p>
    ';
    if((int)$text_addcost["price"]>0)
    {
    $json_addtext .= '"addOn": {
    "@type": "Offer",
    "name": "'.$text_addcost["name1"].'",
    "businessFunction": "Provide service",
    "priceCurrency": "RUB",
    "price": "'.$text_addcost["price"].'"
    }
    ';
    }
    elseif((int)$text_addcost["percent"]>0)
    {
    $percent[] = $text_addcost["percent"];
    }
    }
    DB::free_result($id_addcost);
    }
    $ratio = 1;
    foreach ($percent as $r)
    {
    $ratio = $ratio + ((int)$r/100);
    }
    echo $addtext;
    echo ' </div>
    <div class="good-disclaimer">
    <p><strong>Просим обратить внимание!</strong></p><p>Вашему питомцу может быть отказано в услугах в нашем салоне в следующих случаях:</p><ul class="disclaimer_ul"><li>ослабленного и физически нездорового состояния</li><li>беременности</li><li>агрессивного и неадекватного поведения</li></ul><p>Если у вашей собаки имеются хронические заболевания, патологические изменения покровов (новообразования на коже), аллергические реакции и другие особенности состояния здоровья, обязательно сообщите об этом мастеру.</p><p>Мастер оставляет за собой право взять наценку за агрессивное поведение вашего питомца (укусы, царапины, травмы).</p>
    </div>
    </div>
    ';

    $json='<script type="application/ld+json">
    {
    "@context": "http://schema.org/",
    "@type": "Product",
    "name": "'.$result["name"].'",
    ';
    $json .= (!empty($result["img"]))?'"image": [
    "'.$img_correction.'"
    ],':'';

    $descr = strip_tags((isset($result['text']))?$result['text'].'
    ':'').' '.strip_tags((!empty($id_addcost))?$addtext.'
    ':'');
    $json .= '
    "description": "'.$descr.strip_tags(' <p><strong>Просим обратить внимание!</strong></p><p>Вашему питомцу может быть отказано в услугах в нашем салоне в следующих случаях:</p><ul class="disclaimer_ul">
    ослабленного и физически нездорового состояния
    беременности
    агрессивного и неадекватного поведения
    <p>Если у вашей собаки имеются хронические заболевания, патологические изменения покровов (новообразования на коже), аллергические реакции и другие особенности состояния здоровья, обязательно сообщите об этом мастеру.</p><p>Мастер оставляет за собой право взять наценку за агрессивное поведение вашего питомца (укусы, царапины, травмы).</p>').'",';
    $offer_add = ' "priceCurrency": "RUB",
    "businessFunction": "Provide service",
    "seller": {
    "@type": "Organization",
    "@id": "https://sunnydogspb.ru/",
    "url": "https://sunnydogspb.ru/",
    "sameAs": "https://vk.com/sunnydogspb",
    "telephone": "+7-812-966-77-37",
    "name": "Зоосалон Солнечный пёс"
    }
    ';
    $offer_add .=$json_addtext.'
    ';

    if(count($result["price_arr"])>1)
    {
    foreach ($result["price_arr"] as $price)
    {
    $price_arr[] = $price["price_no_format"];
    }
    sort($price_arr);
    $json.='
    "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "'.array_shift($price_arr).'",
    "highPrice": "'.(int)array_pop($price_arr)*$ratio.'",
    '.$offer_add.'
    }';
    }
    else
    {
    if ($ratio>1)
    {
    $json.='
    "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "'.$result["price_arr"][0]["price_no_format"].'",
    "highPrice": "'.$result["price_arr"][0]["price_no_format"]*$ratio.'",
    '.$offer_add.'
    }';
    }
    else
    {
    $json.='
    "offers": {
    "@type": "Offer",
    "price": "'.$result["price_arr"][0]["price_no_format"].'",
    '.$offer_add.'
    }';
    }
    }



    $json.='
    }
    </script>
    ';

    echo $json;
  • 05 октября 2018 г.
  • А это подо что? Я чет не припомню особо такую проблему. Карочи. Яндексу микроразметка, местами, понятна, но - как я понял, не уперлась. Из того, что воспринимает гугл - написано в рецептах гугла (справка из серчконсоли, блабла), и ТОЛЬКО ТАК КАК ТАМ НАПИСАНО. ВСЕ остальное из схема.орг можно выбросить в пропасть и нассать вдогонку. Из того, что типовое - артикль и продукт. Гугл все это охотно читает, индексирует, и даже иногда использует, но при полной луне и под особой звездой, но она не взойдет. Какого-то практического смысла я не ощутил; Все данные дергаются в блоке/шаблоне/четам из $this, при необходимости минимально подвергаясь напилингу. У меня есть опыт, но не уверен, что в нем есть смысл. Воообще, из общения с гуглем, у меня сложилось стойкое ощущение, что - независимо от того, какую свистоперделку от гугля ты привинчиваешь - ему глубоко пофиг (в отличие от Яши, кстати). Такие дела.
  • 01 мая 2018 г.
  • Спасибо, кэп! Да, редиректы-то можно проставить с чего угодно; вся мякотка в том, что они все равно приведут на урлы вида
    Цитата
    site.com/obuchenie
    site.com/ua/obuchenie
    site.com/uk/obuchenie

    В чем польза для ОПа при таком раскладе - для меня загадка; но - да, такое можно.
  • 30 апреля 2018 г.
  • №2 логично вытекает из №1; про ТП я подумал, потому как сомневаюсь в том, что ЦМС вообще что-то такое может изкаропки; и если я прав, то, подозреваю - для того, чтобы ее научить, нужно целый этно-балет с бубном устраивать.
  • 04 апреля 2018 г.
  • Ммм... Закрыть от поисковика /м/ в роботсе, поставить редиректы с /м/ в хтаксессе. Поддомен работает, поисковик на /м/ зайти не может, значит - не редиректится, но м.домен - вполне себе может обходить. Каноникалы там в шаблонах, все такое. Ну, или движок (маршрутизатор?..) ковырять, что для меня, при уровне вопроса "я фантазирую" слишком заумно, но, наверное - более правильно.
  • 29 марта 2018 г.
  • Ну вот чисто гипотетически я бы, наверное, на поддомен тупо CMS поставил, там развернул сайт с мобильной версткой на той же БД, на которой работает основной сайт, и воткнул бы в htaccess редиректы по регулярке c /m/ на поддомен. Хотя, вполне вероятно, я мыслю неправильно и вообще грязно и мерзко)
  • 26 марта 2018 г.
  • Как я понял, в вашем случае, после редиректа получается такое:
    http://сайт.ru/napolnyy-gazovyy-kotel-baxi-slim-1300-in/kotly/gazovye-kotly/napolnye/napolnyy-gazovyy-kotel-baxi-slim-1300-in/
    Или такое
    http://сайт.ru/napolnyy-gazovyy-kotel-baxi-slim-1300-in/
    ?
    В любом случае, у меня почему-то ничего не произошло; кэш сбрасывал, в браузере в том числе.
    Какбэ, если прямо из оригинального поста не понятно, суть примерно такова: мне по регулярке нужно прилепить массовый редирект товаров из старой категории в новую; метод Виталия работает для одной страницы, но как перекинуть по одной - я и так в курсе. Фокус в том, что у меня этих страниц в общей сложности штук 200, а категорий - раз в 10 меньше. Дело несколько осложняется еще и тем, что у меня в названиях товаров упоминается название категорий. Теперь - как работает магия, если совсем предметно:
    Код

    RewriteCond %{REQUEST_URI} ^.*/tsvergshnautser/.*$
    RewriteRule ^(.*)/tsvergshnautser/(.*)$ https://sunnydogspb.ru/$1/shnautser/tsvergshnautser/$2 [R=301,L]

    То есть, мне нужно перенести категории на уровень ниже. Если делать вот так, как написано - редирект работает, но до тех пор, пока не устает бесконечно вписывать "/shnautser" в УРЛ, а потом сервер пишет, что устал от редиректов. Поэтому я пытаюсь делать вот так:
    Код

    RewriteCond %{REQUEST_URI} ^.*/katalog-uslug/tsvergshnautser/.*$
    RewriteRule ^(.*)/katalog-uslug/tsvergshnautser/(.*)$ https://sunnydogspb.ru/$1/katalog-uslug/shnautser/tsvergshnautser/$2 [R=301,L]

    При этом RewriteCond вполне себе воспринимается, а вот 1-я часть RewriteRule - нет. И даже если обратиться к методу Виталия, я себе с некоторым скрипом представляю, как будет обрабатываться регулярка в качестве переменной в строке, если строка уже по-умолчанию заявлна как переменная. Вообще, у меня ощущение, что если в Диафане как-то с подвыподвертом htaccess работает, надо в ТП писать.
Показывать по:

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум