Топики пользователя «SurRealistik»

Яндекс выпустил плагин для поиска для MODX





Яндекс выпустил плагины для поиска по сайтам на modx!
Вот что говорит Яндекс на эту тему:
А сегодня мы рады представить вам новую возможность – дополнения для популярных CMS, которые умеют автоматически узнавать о появлении новых документов на сайте и генерировать запросы на индексирование этих документов. С помощью сервиса Яндекс.Поиск для сайта и установленного дополнения вы можете обеспечить качественный, свежий поиск по вашему сайту, который будет оперативно обновляться по мере появления на сайте новых страниц.


ссылки для скачивания:
Для EVO
Скачать | Документация
UPD от Agel_Nash: название плагина жестко зашито в коде. В связи с этим плагин должен называться yandex-pinger.
Для REVO
Для REVO | Документация

[EVO] Парсер обрезает часть строки после символа "["

evo 1.0.5
Проблема следующего характера:
Картинки загружены по размерам в папки medium(нормальный размер) и small(маленькие превьюхи) логично, что подставлять нормальноразмерную можно через replace, но! у имени файла картинки иногда встречаются символы [номер], в случае, если картинки загружались с повторяющимися именами.
Так вот, парсер почему-то отрезает имя картинки следующее за символом [. Ведать интерпретирует его как чанк или сниппет и выводит не полное имя картинки image[2].jpg, а image, replace нормально заменает часть строки.
Т.е. обрезается часть строки именно в том случае, если строка передаётся сниппету, для замены подстроки в строке.

Сперва думал это phx шалит, но при отключении phx ничего не меняется.
Пробовал с помощью phx:replace=`small,medium` решить, вообще ничего не выводит.

Ни кто с таким не сталкивался? Как решили?

[Решено]Спамеры загрузили скрипт рассылки на сайт

Приветствую, уважаемое сообщество.
Проблема следующего содержания:

Только что мастерхост заблокировал сайт на MODX EVO 1.0.5 за массовую рассылку спама.
Злоумышленники каким-то образом умудрились загрузить скрипт рассыльщик в директорию
/assets/cache/49ea2.php — class phpmailer в нём
и /assets/cache/52120.php, его содержание:

<?php
$auth_pass = "a26f4564eb450f7887e926ea7d1926bd";
$color = "#df5";
$default_action = "FilesMan";
$default_charset = "Windows-1251";
preg_replace("/.*/e","тутдлиннющий матрас, его не буду выкладывать")


Спиппеты установленные на сайте

Ditto (10) — 2.1.0 Summarizes and lists pages to create blogs, catalogs, PR archives, bio listings and more
Jot (13) — 1.1.4 User comments with moderation and email subscription
Reflect (14) — 2.1.0 Generates date-based archives using Ditto
YAMS (16) — Yet Another Multilingual Solution Snippet
eForm (4) — 1.4.4.6 Robust form parser/processor with validation, multiple sending options, chunk/page support for forms and reports, and file uploads
MemberCheck (5) — 1.1 Show chunks based on a logged in Web User's group membership
Personalize (8) — 2.1 Personalize snippet
WebChangePwd (9) — 1.0 Allows Web User to change their password from the front-end of the website
WebLogin (12) — 1.1 Allows webusers to login to protected pages in the website, supporting multiple user groups
WebSignup (15) — 1.1 Basic Web User account creation/signup system
Breadcrumbs (1) — 1.0.3 Configurable breadcrumb page-trail navigation
FirstChildRedirect (3) — 1.0 Automatically redirects to the first child of a Container Resource
ListIndexer (6) — 1.0.1 A flexible way to show the most recent Resources and other Resource lists
UltimateParent (2) — 2.0 Travels up the document tree from a specified document and returns its «ultimate» non-root parent
Wayfinder (11) — 2.0.1 Completely template-driven and highly flexible menu builder
AjaxSearch (7) — 1.9.2 Ajax and non-Ajax search that supports results highlighting
MultiPhotos (17) — вывод фотографий

Плагины:
YAMS (7) — Yet Another Multilingual Solution Plugin
Forgot Manager Login (5) — 1.1.2 Resets your manager login when you forget your password via email confirmation
ManagerManager (6) — 0.3.9 Customize the MODx Manager to offer bespoke admin functions for end users.
MultiPhotos (8) — Добавление нескольких фотографий к странице
Quick Manager+ (1) — 1.5.5 Enables QuickManager+ front end content editing support
TinyMCE Rich Text Editor (3) — 3.3.9.2 Javascript WYSIWYG Editor
TransAlias (4) — 1.0.1 Human readible URL translation supporting multiple languages and overrides
Search Highlight (2) — 1.5 Used with AjaxSearch to show search terms highlighted on page linked from search results
innova editor 5.4 (9)

Модули: только YAMS и Doc Manager

Никто с таким не сталкивался? Где уязвимость?

UPD:
В логах MODx (Протокол событий) нашёл ошибку парсера

« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error: Unknown: open(/tmp/sess_v71eti401j8j72ciuapc9i6gu7, O_RDWR) failed: Permission denied (13)
Error type/ Nr.: Warning — 2
File: Unknown
Line: 0

UPD2:
Обнаружил на другом сайте с EVO 1.0.5 но без Basic manager тоже загруженный скрипт с классом phpmailer в папке cache

UPD3: Решение
Оказалось это была дыра в системе безопасности modx evo, решение описал Valikras http://community.modx-cms.ru/blog/news/6297.html

[REVO] Как сделать мультисайтинг

Приветствую, уважаемые.

Решил вот собрать несколько сайтов под одну установку, потому что функционал у них практически одинаковый.
Естественно решил делать это на modx REVO
Как оказалось сделать мультисайтинг на MODX проще-простого.
Как вы уже все знаете реализуется подобное с помощью контекстов в системе.

Как сделал я:


( Читать дальше )

[EVO 1.0.5] [РЕШЕНО через костыль] Как адаптировать контент под поисковую систему?

На сайте EVO 1.0.5
Бооооольшой документ с кучей разного контента разбит на дочерние документы по смыслу.

В теле родителя вызываем wayfinder и на его основе строим меню. Подгружаются эти самые документы через виджет jQuery UI tabs. У каждого дочернего документа свои шаблоны и своё наполнение.

Что мы получаем в результате — грузится всё быстро, контент разложен по докам и конечный пользователь сайта хлопает в ладоши от радости.

С одной стороны всё круто, аккуратно и удобно получается. Страница не превращается в гигантскую простыню и пользователь сайта быстро может найти интересующую его инфу.

С другой стороны:

Поисковая система видит документ вообще без контента в результате (судя по кешу яндекса), но с ссылками на доки с контентом. На выходе получаем падение по всем позициям в выдаче, ибо контент практически со всех страниц был перемещён в дочерние документы.

Как добиться того что бы ПС хавала страницу с таким контентом как со встроенным в страницу? Или это можно сделать только при условии того, что контент реально будет находиться в теле документа?

Если контент не аяксом подгружается, то страница станет грузиться дольше. Да и у каждого такого родителя может быть дочерних документов от 1 до 5 и все они с разными шаблонами, тут либо писать свой сниппет, либо юзать Ditto в паре с PHx.

Пните, пожалуйста в нужном направлении. Мож я чего упустил.

UPD:

Решил проблему следующим образом:

Некоторые вкладки вынес по умолчанию в меню с ссылками контейнеры, а в эти контейнеры сразу же положил данные (подгрузил через Ditto).
Результат: основной текстовый контент теперь находится в потоке документа и благополучно индексируется.

[EVO] Как подключить WYSIWYG в своём модуле?

Evo 1.0.5
Вопрос в том как будет правильнее:
1) Подключаем скрипт в самом модуле и вешаем на поле
2) Либо всё тоже самое, но уже через плагин?

Что будет более верным решением с точки зрения логики Modx?

[EVO] Баг с WLPE при листинге пользователей

EVO 1.0.5
WLPE 1.3.1
Всем известно про баги WLPE, но иного готового средства по сей день в EVO нет.
Версия 1.3.1 особо ситуёвину не исправляет.

В коде класса есть очень занятный метод — ViewAllUsers
Приводить весь её код не буду, ибо оно монструазно.
Приведу всего один фрагмент кода, с которым собственно и случается баг, это примерно 1174 строчка в файле webloginpe.class.php.

	foreach ($theUser as $attribute => $value)	

В чём собственно проблема: в какой-то момент переменная $theUser внезапно перестаёт быть массивом (0_о), тобишь иметь тип данных Array и становится Boolen.
Сделал проверку, результат: между записями с id 91 и 92 появляется неводомо откуда ещё запись, которая и не является массивом.

10
90
91
Не массив
92
93
94
95
96
97


Сперва подумал что мож в базе что-то не так — проверил записи — всё в порядке.

Как такое может быть? сперва всё нормально работало, а теперь не хочет категорически.
Да, этот вопрос поднимался единожды на форуме, на в том топике ответа никто так и не дал.
Сайт на хостинге, никуда не переезжал.

« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: 	Invalid argument supplied for foreach()	 
  Error type/ Nr.: 	Warning - 2	 
  File: 	site.ru/www/assets/snippets/webloginpe/webloginpe.class.php	 
  Line: 	1179	 
  Line 1179 source: 	foreach ($theUser as $attribute => $value) 	 
 

Первый раз начинаю дружить с REVO. Сразу куча траблов (

Доброго всем вечера.
Ситуация следующая: по SSH залил MODX Revolution 2.1.3-pl, распаковал, установил.

После установки:
1) не хочет нормально устанавливаться ни один пакет. Вечно вываливается всякий разный текст с ошибками
2) Баг с оверлеем (при загрузке пакетов не всё модальное окно помещается в браузер, потому что стиль во этот отключает полосы прокрутки:

.x-viewport, .x-viewport body {
    border: 0 none;
    height: 100%;
    margin: 0;
    overflow: hidden;
    padding: 0;
}

Фиксится просто фаербагом, если кому лень в файл лезть.
)
Собственно вопрос: как лечить что не устанавливаются пакеты.

РЕШЕНИЕ: Совместно с Valikras переустановили (под его чутким надзором) и всё заработало с пакетами.

Начальная тема: Не хочет нормально работать шопкипер. В результате: холивары по шопкиперу.

Версия MODx 1.0.5
Shopkeeper — только что залил последнюю версию Shopkeeper 1.3.5

На странице оформления заказа выводятся не все выбранные товары, а случайные 2-3 товара.
+ не хочет работать helper, хотя все скрипты подключаются.
На сайте не используется jQuery и вообще JS, кроме того, который входит в состав SHK.

На всех страницах корзина вызывается следующим образом:

[!Shopkeeper? &cartType=`small` &cartTpl=`sur.ShopCart` &priceTV=`price` &orderFormPage=`52` &gotoid=`46` &flyToCart=`helper` &counterField=`1` &hideOn=`52` &noLoader=`1`!]

На странице оформления заказа (52)
вызов следующий

[[Shopkeeper?
&counterField=`1`
&noJQuery=`0` &cartType=`full` &orderFormPage=`52`
&cartTpl=`sur.ShopCart`
&cartRowTpl=`sur.shopRowOrderPage`
]]

Никто не встречался с такой проблемой?

UPD: на странице оформления заказа при вызове неккешированном SHK вообще не выводится, а при кешированном не обновляет позиции.

РЕШЕНИЕ:
Проверьте все чанки, которые используете при вызове SHK на предмет не закрытых тегов (я поторопился и пропустил). + все селекторы классов и идентификаторы должны так же соответствовать =)

Примечание
Драка на причиндалах в комментариях не относится к решению вопроса — так что можете в комментах не искать зерно истины ;-) Поединщиков просьба не обижаться.

Выполнение SQL кода прямо из бэкенда

Никто не встречал модуля для выполнения SQL кода прямо из админки MODx? Или может у кого свой есть =)
НУ что бы в phpmyadmin не лазить постоянно.

UPD: под EVO