varanika

varanika

С нами с 04 ноября 2015; Место в рейтинге пользователей: #715
varanika
17 февраля 2019, 13:59
0
С версии 7.1 пустой индекс массива может вызвать ошибку.
Заменить
foreach ($data['results'] as $array) {
на
foreach ($data['results'] as $i => $array) {
в 169 строке
varanika
10 июля 2018, 09:04
0
Я знаю, что не имеет, я специально скрин со временем внизу делала.
Подтянулся сам превью и только поле с ID. частично завелся :)
Ну и ладно, я уже и без оного реализовала страницу, просто что то нагуглила только 1 такую ошибку на форуме и там тоже не было решения, вот, заинтересовало.

varanika
09 июля 2018, 23:38
0
Ни один ролик. Причем и ключ верно скопировала, и тв были прописаны. Ошибки лезли 2. Сейчас повторила прием — ни одной свежей ошибки не вылезло.
В итоге я пока это дело отложила, ибо так и не поняла что ему не по душе :)


varanika
09 июля 2018, 18:09
0
Людиии… У меня у первой при вставке ссылки пишет Video Id not valid? Причем десяток раз в системных настройках перепроверила названия полей… Для примера обычная ссылка, советский мультик www.youtube.com/watch?v=Gl1_uGW_Teo :)
varanika
27 мая 2018, 11:54
0
Все круто, все полезно. Но я так и не обнаружила как порядковый номер получить :)
Ну например, хочу отловить номер колонки. В thTpl засовываю:
[[+getX]][[+getY]][[+num]][[+idx]][[+id]][[+row]][[+i]][[+cells]]
В общем все логичное и не логичное перепробовала, но порядковое исчисление не отловила :) Что же его выведет то? :)

Прошло 7 минут :)

Кто хочет отловить нумерацию колонок. В 53 строке дописываем:

$cells.=$pdoFetch->getChunk($tpl,  array('val' => $tvtArr[$row][$i], 'idx' => $i), $fastMode);
А в чанке (у меня)
&thTpl=`@INLINE <th><span>[[+idx]]<input name="programm" type="radio" value="[[+val]]"></span></th>`
Ура :) Теперь я могу сделать из таблицы input для формы :)
varanika
10 октября 2017, 10:46
0
Здравствуйте, можно ли использовать это приложение на frontend-e? Например для решение задачи по клику в карточке товара пользователем (не авторизированным в админке и желательно с капчей, чтобы не положили сервер или еще чего) формировать на лету пдф с описанием данного товара и текущей ценой?
varanika
08 апреля 2017, 00:17
0
И тут здравствуйте, Павел.

Блин, прикольно. До этого не дотыкала, как-то привыкла к ссылочке снизу :) Сейчас напишу под формой пользователям про это :)))))
varanika
27 марта 2017, 17:11
0
А пошаговой документации точно нигде нет? Застопорилась. Указала ресурсу, что он закрытый, страница 403 в настройках указана (опять же, 403 страница везде одна? в системных настройках, в минишопе и payandsee? но ведь на ней в трех этих местах показывать желательно разные данные, ну да ладно...), а страница в режиме инкогнито на месте… С минишоп и офис сложностей не возникло, там все по шагам описано. А вот на подписках застряла. Даже сниппеты не нашла с параметрами docs.modx.pro/components/payandsee, чтобы понимать алгоритмы…
varanika
27 марта 2017, 10:40
0
Мг, а как Вы подсвечиваете, что пора переходить к оплате? Появляющейся ссылкой может где?
varanika
26 марта 2017, 19:53
1
0
Добрый день. Сначала настроила вывод обычных товаров и их добавление в корзину. Затем, когда корзина обновляется при помощи msMiniCartDynamic заменила вызов на psSubscription.
При нажатии появляется зеленый попур о том, что все ок.
В js msMiniCartDynamic поменяла cart/add на pssubscription/add.
Но
[[!msMiniCart?]]
(даже стандартный, без внутреннего
[[!msMiniCartDynamic?]]
Не пополняется новой строкой о товаре в корзине. Ошибок в консоли нет. Может есть боевой пример где-нибудь на демо сайте, чтобы глянуть?
varanika
25 марта 2017, 19:41
0
Все, это не лыжи виноваты, а я не удалила второй вызов, в итоге вместо msMiniCart вызывала msMiniCartDynamic, получилось он сам себя звал, а аякс не обрабатывал параметры :)
varanika
25 марта 2017, 19:28
0
А у меня что-то удивительное происходит)))
Беру стандартный минишоповский чанк, удаляю все по инструкции, дописываю скрипт. После нажатия на + (или кнопку добавить ранее) динамически появляется такая конструкция на месте корзины:

Ну или такая. После обновления страницы все на месте уже :)

Обновила страницу и оп:
<img src="" />
varanika
21 марта 2017, 19:39
0
Вот и у меня что-то не так идет. В верху сайта есть:
<li><a href="[[~1]]" title="[[#1.menutitle]]">[[#1.menutitle]]</a></li>
На выходе
<li><a rel="nofollow" target="_blank" href="/" title="Главная">Главная</a></li>
Хотя на остальных сайтах такого не замечала :(
varanika
25 декабря 2016, 21:14
1
0
Целиком, вдруг кто еще захочет сделать всплывающую форму связи с администрацией
var easyComm = {
    initialize: function(){
        if(!jQuery().ajaxForm) {
            easyComm.notice.error('Can`t find jQuery ajaxForm plugin!');
        }
        easyComm.rating.initialize();
        jQuery(document).on('submit', 'form.ec-form', function(e){
            easyComm.message.send(this);
            e.preventDefault();
            return false;
        });
    },

    message: {
        send: function(form) {
            jQuery(form).ajaxSubmit({
                data: {action: 'message/create'}
                ,url: easyCommConfig.actionUrl
                ,form: form
                ,dataType: 'json'
                ,beforeSubmit: function() {
                    jQuery(form).find('input[type="submit"]').attr('disabled','disabled');
                    jQuery(form).find('.has-error').removeClass('has-error');
                    jQuery(form).find('.ec-error').text('').hide();
                    return true;
                }
                ,success: function(response) {
                    var fid = jQuery(form).data('fid');
                    jQuery(form).find('input[type="submit"]').removeAttr('disabled');
                    if (response.success) {
                        jQuery(form)[0].reset();
                        if(typeof (response.data) == "string") {
                            jQuery('#ec-form-success-' + fid).html(response.data);
                            jQuery(form).hide();
                            setTimeout( function() {$.fancybox.close(); },3000);
                        }
                        else {
                            easyComm.notice.show(response.message);
                        }
                    }
                    else {
                        if(response.data && response.data.length) {
                            jQuery.each(response.data, function(i, error) {
                                jQuery(form).find('[name="' + error.field + '"]').closest('.form-group').addClass('has-error');
                                jQuery(form).find('#ec-' + error.field + '-error-' + fid).text(error.message).show();
                            });
                        } else {
                            easyComm.notice.error(response.message);
                        }
                    }
                }
                ,error: function(){
                    jQuery(form).find('input[type="submit"]').removeAttr('disabled');
                    easyComm.notice.error('Submit error');
                }
            });
        }
    },


    rating: {
        initialize: function(){
            var stars = jQuery('.ec-rating').find('.ec-rating-stars>span');
            stars.on('touchend click', function(e){
                var starDesc = jQuery(this).data('description');
                jQuery(this).parent().parent().find('.ec-rating-description').html(starDesc).data('old-text', starDesc);
                jQuery(this).parent().children().removeClass('active active2 active-disabled');
                jQuery(this).prevAll().addClass('active');
                jQuery(this).addClass('active');
                // save vote
                var storageId = jQuery(this).closest('.ec-rating').data('storage-id');
                jQuery('#' + storageId).val(jQuery(this).data('rating'));
            });
            stars.hover(
                // hover in
                function() {
                    var descEl = jQuery(this).parent().parent().find('.ec-rating-description');
                    descEl.data('old-text', descEl.html());
                    descEl.html(jQuery(this).data('description'));
                    jQuery(this).addClass('active2').removeClass('active-disabled');
                    jQuery(this).prevAll().addClass('active2').removeClass('active-disabled');
                    jQuery(this).nextAll().removeClass('active2').addClass('active-disabled');
                },
                // hover out
                function(){
                    var descEl = jQuery(this).parent().parent().find('.ec-rating-description');
                    descEl.html(descEl.data('old-text'));
                    jQuery(this).parent().children().removeClass('active2 active-disabled');
                }
            );
        }
    },

    notice: {
        error: function(text) {
            alert(text);
        },
        show: function(text) {
            alert(text);
        }
    }
}

jQuery(document).ready(function(){
    easyComm.initialize();
    
     var forma = $('a.fansy');
     if (forma.length > 0) {
     forma.fancybox({
		closeClick  : false,
		closeBtn	: false,
		width       : '70%',
                height	: '70%',
		openEffect	: 'elastic',
    	        closeEffect	: 'elastic',
		hideOnContentClick:false,
		titleShow:false,
                helpers: {
                   overlay: {
                      locked: false
                                 },
		   title:      {
			type: 'outside'
			         }
    }
});
}
});
Само собой кнопка вызова формы имеет класс fansy, a на странице подключен стиль и скрипт fancyapps.com/
varanika
25 декабря 2016, 00:55
+2
Как бы нашла решение :)
jQuery(form).hide();
                             setTimeout( function() {$.fancybox.close(); },3000);
Добавить в my.default.js вместо
jQuery(form).hide();
varanika
24 декабря 2016, 22:45
0
Добрый вечер.
Хочу реализовать форму вопроса во всплывающем окне. Если использовать фэнсибок и настроить в js закрытие на клик по кнопке — то форма закроется даже при ошибке в заполнении. Случайно в коробке нет ответов на эту реализацию?
varanika
28 октября 2016, 15:04
-1
Сомневаюсь про одинаковые настройки. У тикетов есть сбоку внизу галочки и там «Показывать в дереве» — вот её положение по умолчанию, при создании нового, зависит от настроек родительской секции.
Тут же вопрос: те тикеты, которые уже имеются, не появятся в общем списке?
Кэш очищала, url обновляла, список ресурсов обновляла. Фото прикрепляю.






попробуйте поотключать SeoTab
Да, действительно снова вина SeoTab.
В целом это всё выглядит как сайт, где понаставлено множество дополнений, чтобы было.
Не соглашусь. По сути своей тот же SeoTab очень даже нужная вещь, но на шопкипере и тикетах вызывает глюки. Приходится отключать. Жаль, что у него есть проблемы с совместимостью.

Стоит ли говорить, что проблем нет?
Что ж Вы так ехидничать то любите, Василий? :)

Откровенно говоря, очень не хватает порой тестового сайта с демо-админкой, куда можно заходить и подсматривать некоторые моменты. Думаю, многие вопросы с «замыленностью взгляда» решались бы простым сравнением кода.
varanika
19 сентября 2016, 19:13
1
0
Спасибо, что так подробно описали :) Однако, к тому времени, как я дождалась ответа, я уже поступила по другому (нашла пару советов в нескольких местах и соединила их) :)
Я использую get запросы типа:
<a href="[[~32]]?name=[[+username]]" title="Просмотреть">
Где 32 — ресурс Страница пользователя, принимающий параметры с одним единственны вызовом:
[[!userProfile]]
А уже данный сниппет таков:
<?php
	$count = $modx->getCount('modUser', array('username' => $_GET['name']));
	if($count <= 0 || $count >= 2){
		echo'<div class="alert alert-warning" role="alert">	<h2>
				Ошибка
			</h2>
			<p>Вы видите данное сообщение потому, что:</p>
			<br />
			<ul>
			<li>пользователя не существует на сайте;</li>
			<li>профиль пользователя был удален;</li>
			<li>пользователь принадлежит к тайному обществу, которое скрывает данные о себе.</li>
			</ul>
			<br />
			<p>Если Вы читаете данное сообщение, значит полный профиль скрыт и Вы можете посмотреть его краткую версию на 
			странице <a href="[[~31]]" title="Все пользователи">Все пользователи</a></p></div>	';
	}
	else {
	    $user = $modx->getObject('modUser',array('username'=>$_GET['name']));
        $user_id = $user-> get('id');
	   	$params = array();
		$params['users'] = $user_id;
                $params['limit'] = '1';
		$params['showBlocked'] = '1';
		$params['tpl'] = 'User';
		$result = $modx->runSnippet('pdoUsers', $params);
	
		if (!empty($result)) {
			return $result;
		}
		else {
			return '<h2>
					<a>Ошибка</a>
				</h2>
				<div>
					Что-то пошло не так...
				</div>';
		}


	}
Т.е. через строку url я получаю имя пользователя, отдаю его сниппету, а он направляет выборку в pdoUsers. Придумано не мной, я лишь адаптировала под себя.

Ну и чанк User, куда все полетело:

<div class="col-lg-3 col-sm-3 hidden-xs col-md-3">
    <img class="img-thumbmail margin-bottom15" src="[[+photo:default=`/assets/photouser/default.jpg`:thumb=`&w=150&h=150`]]" title="[[+username:htmlent]]">
</div>
<div class="col-lg-4 col-sm-4 col-xs-6 col-md-4">
    <p class="margin-bottom25"><strong>Полное имя</strong></p>
<p><strong>Логин</strong> </p>
</div>
<div class="col-lg-5 col-sm-5 col-xs-6 col-md-5">
    <h3 class="margin-bottom25">[[+fullname:empty=`не указано`]]</h3>
    <p>[[+username:empty=`не указано`]]</p>
    <p><a class="btn btn-default ticket-read-more" href="[[~35? &msgID=`[[+id]]`  &recipient=`[[+sender]]`]]">
        Написать</a>
   </p>
</div>
<table class="table table-striped table-hover">
      <tbody>
     [[!getAuthorRating? &userId=`[[+id]]`]]
       <tr><td>Город</td>
       <td>[[+city:empty=`не указан`]]</td>
       </tr>
       <tr><td>Страна</td>
       <td>[[+country:default=`Беларусь`]]</td>
       </tr>
       <tr></td></tr>
      <tr><td>Телефон</td><td><span class="glyphicon glyphicon-phone-alt" aria-hidden="true"></span> 
      [[+phone:empty=`не указан`]]<br /><span class="glyphicon glyphicon-earphone" aria-hidden="true"></span> 
      [[+mobilephone:empty=`не указан`]]</td></tr>
    </tbody>
</table>
varanika
15 сентября 2016, 14:38
0
Доброго дня, можно поинтересоваться, как именно Вы формируете саму ссылку на страницу с данными пользователя?