Борис И

Борис И

С нами с 20 апреля 2014; Место в рейтинге пользователей: #71
Борис И
07 декабря 2015, 09:17
0
Спасибо
Борис И
06 декабря 2015, 21:44
0
Кажется нашел. В шаблоне был не существующий чанк, moddevtools его показывал как виртуальный и выдавал на фронте вместо него moddevtools
Борис И
05 декабря 2015, 20:10
0
Начал, жесть. Вроде все проверил, удаляю и что-то где-то ломается, восстанавливаю, ищу, разбираюсь… и все заново. Эх, вот бы автоматизировать…
Борис И
05 декабря 2015, 19:59
0
Придумал кривое решение. Создать временно шаблон temp скопировать туда код всех шаблонов сайта. modDevTools покажет все используемые чанки в одном месте, но от такого решения, что-то воротит. Может быть кто сталкивался с похожими задачами. Как Вы чистите незнакомый сайт от лишних чанков ...?
Борис И
27 ноября 2015, 00:00
0
<?php
$str = $resource->content;
        $str = preg_replace_callback('|<h([2,3]{1})>(.+)</h[2,3]{1}>|iU', function($matches){
	        static $id = 0;
        	$id++;
        	return '<h'.$matches[1].' id="'.$id.'">'.$matches[2].'</h'.$matches[1].'>';
        }, $str);
    $resource->set('content',$str);
    $str1 = $resource->content;
    $res = preg_match_all('|<h([2,3]{1})[\s]+id=[\s]*\"([^\"]*)\">(.+)</h[2,3]{1}>|iU',$str1, $result);
    if (!empty($res)){ $strres='<b>Содержание:</b></br>';} else { $strres=''; }

foreach ($result[3] as $key => $value) {
    $strres=$strres.'<a class="list-content" href="[[*uri]]#'.$result[2][$key].'">'.$result[3][$key].'</a></br>';
                             
                            }
   $tv = $modx->getOption('TV',$scriptProperties,'video');
   $video = $resource->GetTVValue($tv); 
   
   if($video!='') {
      $strres=$strres.'<a class="list-content" href="[[*uri]]#video">'.'Видео</a></br>';   
    }
  $tv = $modx->getOption('TV',$scriptProperties,'id-search-content-tv');
  $contentslist = $resource->GetTVValue($tv);                           
$resource->setTVValue($tv,$strres);
  
$resource->save();
Борис И
26 июля 2015, 16:05
0
Вот пример на вскидку otzovik.com можно проголосовать за обзор не регистрируясь и таких примеров много.
Еще пример, это сайт где вообще нет авторизации, потому что пользователям это не нужно, они пришли за информацией и никто не будет регистрироваться для оценки статьи (даже через соц сеть), а если регистрироваться не нужно то запросто кликнут для оценки. Для сообществ я с вами полностью согласен нужна авторизация, а для «информационников» она в большинстве случаев бесполезна.
А вот рейтинг это очень нужное дополнение, по нему можно сортировать статьи для пользователей, а значит повысить удобство сайта.
Личный пример на основе Tickets. Были комментарии только для авторизованных (через соц. сеть), вроде нажми кнопочку и оставь отзыв не заполняя доп. поля — комментариев «кот наплакал». Сделали возможность комментировать для анонимов и люди стали оставлять комментарии, при это им приходится заполнять имя, email… где логика? Но это факт.
На мой взгляд у вас хороший компонент, а добавление возможности голосовать не авторизованным, сделало бы его еще лучше.
Спасибо.
Борис И
26 июля 2015, 15:20
0
Очень жаль. Есть много проектов где нужна возможность голосовать без авторизации, где накручивать рейтинг статье просто нет смысла и не кто не будет регистрироваться и авторизовываться чтобы проголосовать.
Без авторизации есть css rating stars но у него есть ОГРОМНЫЕ минусы: 1. работает с перезагрузкой страницы 2. появляется огромное число дублей страницы, за счет формирования звездочек ссылками siteurl?vote=5&star_id=… (а именно по 5 штук к каждой)

В общем voteforms идеально бы подошел на многих сайтах, если бы была возможность голосовать без авторизации.
Борис И
26 июля 2015, 13:33
0
Удалил
if (!$VoteForms->authenticated) {
  die($modx->lexicon('voteforms_form_err_no_auth'));
}
еще из
assets/components/voteforms/action.php
и авторизацию больше не запрашивает, проголосовал один раз не авторизованным все успешно.
Для проверки открыл туже страницу другим браузером и пытаюсь еще голосовать, но число голосов не увеличивается.
Борис И
24 июля 2015, 17:57
0
Обновил Tickets на другом сайте, все хорошо никаких проблем. В чем дело понять не могу.
Борис И
24 июля 2015, 17:52
0
Такая проблема уже была раньше, до перехода на Tickets 1.4.2, после обновления на 1.4.2 все заработало.
Борис И
24 июля 2015, 17:44
0
Здравствуйте. Помогите пожалуйста, возникла проблема. Решил обновить сайт с modx 2.2.16 на 2.3.5 и естественно заодно обновил и все компоненты на последние, включая Tickets (был 1.4.2).
Теперь при оправке тикета с фото, с фронта не меняются пути картинки с 0 на id, остаются /assets/images/tickets/0/… причем все отображается, картинка помещается в папку 0
Все изменения откатил и попробовал обновить только Tickets, не трогая modx. Ситуация та же.
Борис И
24 июля 2015, 12:06
0
Здравствуйте. Помогите пожалуйста, не могу разобраться. В voteforms возможность голосовать только для авторизированных пользователей. Гостям голосовать никак не получится?
"Вы должны авторизоваться, чтобы проголосовать."
Борис И
24 июля 2015, 11:58
0
Здравствуйте. Помогите пожалуйста, не могу разобраться. В voteforms возможность голосовать только для авторизированных пользователей. Гостям голосовать никак не получится?
Борис И
16 января 2015, 12:52
0
Дизайн нравится, все качественно, но контактов все таки не хватает. Регистрироваться, чтобы задать вопрос, не все будут, да и нигде явно это не указано.
В общем, мое мнение, для любой организации необходимо указывать контакты (на видном месте, хотя бы email), это упрощает взаимодействие с потенциальными клиентами и повышать доверие людей ничего не знающих о компании.
В идеале, помимо контактов, онлайн консультант, но это уже другие организационные проблемы.
Борис И
16 января 2015, 10:39
0
Василий, а где контакты? С людьми в сообществе все понятно, они знают как связаться, но наверное проект нацелен на более широкую аудиторию.
На мой взгляд, как пользователя shared хостинга, очень часто перед заказом нужно задать пару вопросов поддержке, а контактов нет (соц. сети не в счет).
Борис И
08 января 2015, 12:13
+1
Спасибо! Tickets становится все лучше и лучше.
Борис И
16 декабря 2014, 16:23
1
0
Век живи, век учись. Мой вариант выше с косяком в регулярке ($img=preg_replace('/0{1}/',$id."/",$img);). Вот новый вариант
<?php
if($modx->context->get('key') == 'mgr') {
    $tv = $modx->getOption('TV',$scriptProperties,'firstImage');
    $img = $resource->GetTVValue($tv);

    if(empty($img)) {
         $def_img ='/assets/tplobzor/img/noimgdef.jpg';
         $media_source = '/assets/images/tickets/';
         $text = $resource->content;
    
         if (preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i',$text , $matches )!=0)	{$img = $matches[1][0];}
         else {$img = $def_img;}
    
         $img = str_replace($media_source, '', $img);
         $resource->setTVValue($tv,$img);
    }
}
else {
    
    $tv = $modx->getOption('TV',$scriptProperties,'firstImage');
    $img = $resource->GetTVValue($tv);

    if(empty($img)) {
         $def_img ='/assets/tplobzor/img/noimgdef.jpg';
         $media_source = '/assets/images/tickets/';
         $text = $resource->content;
    
         if (preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i',$text , $matches )!=0)	{$img = $matches[1][0];}
         else {$img = $def_img;}
         $id=$modx->resource->get('id');
         $img=preg_replace('/\/[0]{1}\//',"/".$id."/",$img);
         $img = str_replace($media_source, '', $img);
         $resource->setTVValue($tv,$img);
    }
    
    
}
Борис И
08 декабря 2014, 21:42
0
Все сделал.
Установил
<base href="[[++base_url]]" />
Настройках системы — core — Сайт
Схема URL (link_tag_scheme) установить значение abs

В коде ссылка
<a href="#test">Ссылка</a>

При наведении
site.ru/#test
а должна быть
site.ru/page.html#test
Борис И
07 декабря 2014, 12:16
+1
Немного переделал, теперь и при публикации с фронта с помощью Tickets пути прописываются верно.

if($modx->context->get('key') == 'mgr') {
    $tv = $modx->getOption('TV',$scriptProperties,'firstImage');
    $img = $resource->GetTVValue($tv);

    if(empty($img)) {
         $def_img ='/assets/tplobzor/img/noimgdef.jpg';
         $media_source = '/assets/images/tickets/';
         $text = $resource->content;
    
         if (preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i',$text , $matches )!=0)	{$img = $matches[1][0];}
         else {$img = $def_img;}
    
         $img = str_replace($media_source, '', $img);
         $resource->setTVValue($tv,$img);
    }
}
else {
    
    $tv = $modx->getOption('TV',$scriptProperties,'firstImage');
    $img = $resource->GetTVValue($tv);

    if(empty($img)) {
         $def_img ='/assets/tplobzor/img/noimgdef.jpg';
         $media_source = '/assets/images/tickets/';
         $text = $resource->content;
    
         if (preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i',$text , $matches )!=0)	{$img = $matches[1][0];}
         else {$img = $def_img;}
         $id=$modx->resource->get('id');
         $img=preg_replace('/0{1}/',$id."/",$img);
         $img = str_replace($media_source, '', $img);
         $resource->setTVValue($tv,$img);
    }
    
    
}