• Почему в Prestashop перестали отображаться изменения при редактировании TPL файла?

    @Kerm
    Не указана версия CMS, по этому пишу для 1.6.1:

    1) Если мы говорим про шаблон темы, то может файл положили в папку с другой темой, там по стандарту идет тема default и при установки новой темы создается новая папка с названием темы.
    2) На странице производительности не установлена галочка на чистке кеша при изменении чего либо.
    3) Чистите кеш где то в другом месте, а не через кнопку на странице производительности.
    4) Если Вы правите шаблон модуля, то возможно его перезаписывает шаблон в папке с темой, /themes/default/modules/твоймодуль/
    Ответ написан
    Комментировать
  • Надежно ли использовать только is_numeric и is_int?

    @Kerm
    Я пишу в своем коде вот так:

    if ((int)$_GET['id'] > 0) {
    .....
    }
    Ответ написан
    Комментировать
  • Как настроить Telegram Bot API если провайдер блокирует api.telegram.org?

    @Kerm Автор вопроса
    Я это решил так, арендовал хостинг где не блокируется телеграмм, создал пустой домен и в nginx прописал:

    server {
    	listen         *:80;
    	listen         *:443 ssl;
    	server_name    site.ru;
    
    	ssl_certificate               sert.pem;
    	ssl_certificate_key           sert.pem;
    
    
    	location / {
    		proxy_set_header X-Forwarded-Host $host;
    		proxy_set_header X-Forwarded-Server $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_pass https://site.ru/api/telegram/bot.php;
    		client_max_body_size 100M;
    	}
    }


    В папку с доменом положил index.php с кодом:

    <?php
    require_once "C:/OSPanel/domains/site.ru/vendor/autoload.php";
    
    use Proxy\Proxy;
    use Proxy\Adapter\Guzzle\GuzzleAdapter;
    use Proxy\Filter\RemoveEncodingFilter;
    use Zend\Diactoros\ServerRequestFactory;
    
    // Create a PSR7 request based on the current browser request.
    $request = ServerRequestFactory::fromGlobals();
    
    // Create a guzzle client
    $guzzle = new GuzzleHttp\Client();
    
    // Create the proxy instance
    $proxy = new Proxy(new GuzzleAdapter($guzzle));
    
    // Add a response filter that removes the encoding headers.
    $proxy->filter(new RemoveEncodingFilter());
    
    // Forward the request and get the response.
    $response = $proxy->forward($request)->to('https://site.ru/api/telegram/bot.php');
    
    // Output response to the browser.
    (new Zend\Diactoros\Response\SapiEmitter)->emit($response);
    
    ?>
    Ответ написан
    2 комментария
  • Как сделать этот запрос в mysql через php?

    @Kerm
    В одну строчку нельзя?

    "set @i := -1;update tablename set id = (@i := @i+1 ) order by id;"
    Ответ написан
    Комментировать
  • Как реализовать секцию галереи в single поста?

    @Kerm
    Да главное мелкие картинки фоток сделать все одного размера в CSS чисто ограните их высоту, а уже когда увеличат увидят фотку полностью.
    Ответ написан
    Комментировать
  • Как узнать пропущенные элементы массива?

    @Kerm
    foreach ($array as $key => $value) {
        $value = trim($value);
        if (empty($value))
            echo "$key empty <br/>";
        else
            echo "$key not empty <br/>";
    }
    Ответ написан
  • Вопрос по MySQL, правильно ли в engine=memory делать insert?

    @Kerm Автор вопроса
    Так 3. обновление всех записей при UPDATE `test` SET `updated` = 0 происходит в транзакции и не чего не блокирует или Вы имеете ввиду что по времени выполнения обновления увеличивает продолжительность отработки запроса?
    Ответ написан
  • Как на JS преобразовать массив с ключами, в данные в фигурных скобках через запятую?

    @Kerm Автор вопроса
    Виктор, в таком формате нужно скрипт инициализировать:

    var json = {
           "type": "FeatureCollection",
           "features": [{
             "type": "Feature",
             "id": 0,
             "geometry": {
               "type": "Point",
               "coordinates": [55.753215, 37.6225],
               "Lat": 55.753215,
               "Long": 37.6225,
               "PrintCoordinates": "[55.753215,37.6225]"
             },
             "properties": {
               "balloonContentHeader": "Основной",
               "balloonContentBody": "Партнер: Charmante Соболева Ольга - клиенты",
               "balloonContentFooter": null,
               "clusterCaption": "Основной",
               "hintContent": "Основной"
             },
             "options": {
               "preset": "islands#redIcon"
             }
           }, {
             "type": "Feature",
             "id": 1,
             "geometry": {
               "type": "Point",
               "coordinates": [55.933948, 37.8432],
               "Lat": 55.933948,
               "Long": 37.8432,
               "PrintCoordinates": "[55.933948,37.8432]"
             },
             "properties": {
               "balloonContentHeader": "ladybird",
               "balloonContentBody": "Партнер: Вд Башинская Людмила Викторовна - (ФАВ)",
               "balloonContentFooter": null,
               "clusterCaption": "ladybird",
               "hintContent": "ladybird"
             },
             "options": {
               "preset": "islands#darkGreenIcon"
             }
           }]}


    Вот где Features: идет перечень точек на карте. У меня этот перечень содержит массив с объектами точек внутри, только вот в массиве есть ключи, а яндекс ждет чтобы было:

    "features": [{...}, {...} , {...} ,{...}]

    Так вот, как мне надо переменную с массивом объектов внутри, преобразовать в:
    "features": [{...}, {...} , {...} ,{...}]

    ?
    Ответ написан
    Комментировать
  • Linux монтирование удаленной шары при старте сервера?

    @Kerm Автор вопроса
    Дело в том что я уже разобрался с одной проблемой, надо было звёздочку поставить здесь:

    * -fstype=cifs,rw,noperm,username=,password=,domain= ://10.10.5.186/images в место надписи images в начале.

    Но, сразу же появилась другая проблема, вернее проблемы, во-первых файлы в папке появляются только при обращении к ней процесса, а во вторых они пропадают через 60 секунд, в третьих если через FTP клиент зайти в папку то файлы появятся внутри папки .ftpaccess

    Короче зря потратил время, сделал через fstab, спасибо.
    Ответ написан
    Комментировать
  • Win server 2016, проблема с изменением файлов сайта по FTP, файлы блокируются?

    @Kerm Автор вопроса
    Сейчас еще как вариант отключил сервис поиска, оказывается он был включен. Может блокирует доступ к файлам именно поиск т.к. пытается проиндексировать обновленный по FTP файл...буду проверять, отпишусь.
    Ответ написан
  • PHP SOAP интеграция с API Pony Express?

    @Kerm Автор вопроса
    Ой все такие умные, тех. поддержки на сайте Pony нет вообще, даже такого раздела и чего либо намекающего на суппорт, на сайте даже онлайн чате отвечают раз в день у них. Please contact service desk. это скорее всего стандартный текст какой ни будь софтиты. Нет и не было у них service desk этого.

    Я посылаю вот эти данные:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://tempuri.org/">
       <soapenv:Header/>
       <soapenv:Body>
          <ns1:SubmitRequest>
             <!--Optional:-->
             <ns1:accesskey>59ef638c-****-****-****-5da5a6080f8e</ns1:accesskey>
             <!--Optional:-->
             <ns1:requestBody>
             	<ns1:Request xsi:type="OrderRequest">
             		<ns1:Id>10174</Id>
             		<ns1:Mode>Status</Mode>
    				<ns1:OrderList>
    					<ns1:Order>
    						<ns1:ServiceList>
    							<ns1:Service xsi:type="DeliveryService">
    								<ns1:Waybill>
    									<ns1:Number>22-6762-0542</Number>
    								</ns1:Waybill>
    							</ns1:Service>
    						</ns1:ServiceList>
    					</ns1:Order>
    				</ns1:OrderList>
             	</ns1:Request>
             </ns1:requestBody>
          </ns1:SubmitRequest>
       </soapenv:Body>
    </soapenv:Envelope>


    Получаю вот такой ответ:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body>
          <s:Fault>
             <faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:DeserializationFailed</faultcode>
             <faultstring xml:lang="ru-RU">The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:requestBody. The InnerException message was 'There was an error deserializing the object of type System.String. End element 'requestBody' from namespace 'http://tempuri.org/' expected. Found element 'ns1:Request' from namespace 'http://tempuri.org/'. Line 9, position 48.'.  Please see InnerException for more details.</faultstring>
             <detail>
                <ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                   <HelpLink i:nil="true"/>
                   <InnerException>
                      <HelpLink i:nil="true"/>
                      <InnerException>
                         <HelpLink i:nil="true"/>
                         <InnerException i:nil="true"/>
                         <Message>End element 'requestBody' from namespace 'http://tempuri.org/' expected. Found element 'ns1:Request' from namespace 'http://tempuri.org/'. Line 9, position 48.</Message>
                         <StackTrace>at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
       at System.Xml.XmlExceptionHelper.ThrowEndElementExpected(XmlDictionaryReader reader, String localName, String ns)
       at System.Xml.XmlBaseReader.ReadEndElement()
       at System.Xml.XmlBaseReader.ReadElementContentAsString()
       at System.Runtime.Serialization.XmlReaderDelegator.ReadElementContentAsString()
       at System.Runtime.Serialization.StringDataContract.ReadXmlValue(XmlReaderDelegator reader, XmlObjectSerializerReadContext context)
       at System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
       at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)</StackTrace>
                         <Type>System.Xml.XmlException</Type>
                      </InnerException>
                      <Message>There was an error deserializing the object of type System.String. End element 'requestBody' from namespace 'http://tempuri.org/' expected. Found element 'ns1:Request' from namespace 'http://tempuri.org/'. Line 9, position 48.</Message>
                      <StackTrace>at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
       at System.Runtime.Serialization.DataContractSerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName)
       at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.PartInfo.ReadObject(XmlDictionaryReader reader, XmlObjectSerializer serializer)
       at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameterPart(XmlDictionaryReader reader, PartInfo part, Boolean isRequest)</StackTrace>
                      <Type>System.Runtime.Serialization.SerializationException</Type>
                   </InnerException>
                   <Message>The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:requestBody. The InnerException message was 'There was an error deserializing the object of type System.String. End element 'requestBody' from namespace 'http://tempuri.org/' expected. Found element 'ns1:Request' from namespace 'http://tempuri.org/'. Line 9, position 48.'.  Please see InnerException for more details.</Message>
                   <StackTrace><![CDATA[at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameterPart(XmlDictionaryReader reader, PartInfo part, Boolean isRequest)
       at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameter(XmlDictionaryReader reader, PartInfo part, Boolean isRequest)
       at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameters(XmlDictionaryReader reader, PartInfo[] parts, Object[] parameters, Boolean isRequest)
       at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, String action, MessageDescription messageDescription, Object[] parameters, Boolean isRequest)
       at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents(Message message, Object[] parameters, Boolean isRequest)
       at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeRequest(Message message, Object[] parameters)
       at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)]]></StackTrace>
                   <Type>System.ServiceModel.Dispatcher.NetDispatcherFaultException</Type>
                </ExceptionDetail>
             </detail>
          </s:Fault>
       </s:Body>
    </s:Envelope>


    Не пойму что означает ошибка:

    End element 'requestBody' from namespace 'tempuri.org' expected. Found element 'ns1:Request' from namespace 'tempuri.org'. Line 9, position 48
    Ответ написан
  • Вопрос по google tag manager, как передать информацию перед редиректом на сайт оплаты?

    @Kerm Автор вопроса
    Попробовал вот так, тоже не поступают данные..:

    if (typeof google_tag_manager === 'object') {
    		dataLayer.push({
    			'event': 'PayByCard',
    			'ecommerce': {
    					'purchase': {
    						'actionField': {
    							'id': ''+rd.o_id['order_id']+'',
    							'revenue': ''+rd.o_id['price'].replace(/[^0-9$.,]/g, '')+'',
    							'coupon': ''+rd.o_id['coupon']+'',
    						},'products': products
    					}
    
    			},
    			'eventCallback' : function() {
    				alert('Сейчас Вы будите перенаправлены на страницу оплаты.');
    				setTimeout(function(){
    					id('order_payment').submit();
    				}, 2000);
    				
    			}
    		})
    	}
    Ответ написан
    Комментировать