Бесплатно отвечаю на вопросы по ModX Revo/Evo

HC
На сайте с 19.07.2011
Offline
119
#61

глюки чтоль какие.

но сейчас установился шаблон для странички.

---------- Добавлено 06.02.2015 в 01:28 ----------

оказывается надо ДВА раза сохранять, чтоб шаблон закрепился.

Q
На сайте с 06.02.2015
Offline
0
#62

Доброго времени суток! Прошу прощения, может не туда пишу.

Нужна помощь Jot на Modx Evo. Можно ли добавлять к комментарию картинку? И есть ли готовое решение? Скажу сразу Disqus не подходит для решения задачи.

yet_warm
На сайте с 26.05.2007
Offline
129
#63
Qwes:
Доброго времени суток! Прошу прощения, может не туда пишу.
Нужна помощь Jot на Modx Evo. Можно ли добавлять к комментарию картинку? И есть ли готовое решение? Скажу сразу Disqus не подходит для решения задачи.

Готового нет, есть алгоритм.

А вообще, лучше использовать усовершенствованный JotX.

Многие хотят попасть в рай, мало кто хочет для этого умирать.
D
На сайте с 07.02.2015
Offline
27
#64

Здавствуйте!

Начал осваивать Modx, пока с Evolution

И после пробного сайта-блога задался таким вопросом - есть ли возможность связи Modx и Livejournal в виде готового решния? То есть пост на сайте автоматом публикуется в Livejournal. Покопался в инете - но что-то не нашел таких упоминаний.

Спасибо!

tomasoyer
На сайте с 24.03.2013
Offline
55
#65
daand:
Здавствуйте!

Начал осваивать Modx, пока с Evolution
И после пробного сайта-блога задался таким вопросом - есть ли возможность связи Modx и Livejournal в виде готового решния? То есть пост на сайте автоматом публикуется в Livejournal. Покопался в инете - но что-то не нашел таких упоминаний.

Спасибо!

Готового нет. Копайте в сторону автопостинга в жж в принципе. Со стороны модх такое кодится за пару часов.

http://lleo.me/blog/2014/11/17.html#lj

IR
На сайте с 27.03.2015
Offline
0
#66

Добрый вечер.

Есть задание, написание на сайте ajax модуля, который бы при нажатии кнопки подгружал товары нужной категории. С modx я работаю около года, и хотя на php писал мало, решил что осилю. Начал писать, и вроде бы всё шло хорошо, но оказалось что в чанке отображения товара есть вызов другого сниппета, а так как я начал писать отдельный модуль php с запросами к базе данных я не знал как его можно подключить. Погуглив я нашел возможность сделать мой модуль статичным сниппетом и добавив в него инициализацию объекта класса modX вызвать с помощью функции runSnippet нужный сниппет. Но он так и не заработал, выдает ошибку:

Fatal error: Call to a member function get() on a non-object in /home/a/altovomz/altovomz.bget.ru/public_html/core/components/star_rating/model/star_rating/starrating.class.php on line 64

в строке 64 такой вот код:

$listItems .= '<li class="star"><a href="'. $this->xpdo->makeUrl($this->xpdo->resource->get('id'), '', $urlParams) . '" title="' . $i . '/' . $this->config['maxStars'] . '" style="width:'.$starWidth .'%;z-index:'.$starIndex . '" rel="nofollow">'. $i . '</a></li>';

Опытным путем я выяснил, что он не может получить id текущего ресурса.

Вот код моего модуля (я уже выяснил почитав форум что запросы к базе легче с помощью xpdo делать, но хочу понять в чем здесь ошибка и дописать его пока в таком виде, если конечно это возможно):

<?php

ini_set('display_errors','On');

error_reporting(E_ALL|E_STRICT);

$link = mysql_connect('localhost','altovomz_guerryl','yA.f3fwKCl-i');

mysql_select_db('altovomz_guerryl');

mysql_set_charset('utf8');

$parent = $_GET["Parent"];

$SQLtxt = "SELECT * FROM modx_site_content WHERE parent = ".$parent."";

$result = mysql_query($SQLtxt, $link);

whSQLrequests($result, $link, 0);

function whSQLrequests($resultsSQL, $linkSQL, $i) {

while ($goodRes = mysql_fetch_array($resultsSQL)) {

if ($goodRes['template'] != 1) {

$SQLtxt = "SELECT * FROM modx_site_content WHERE parent = ".$goodRes['id']."";

$result = mysql_query($SQLtxt, $linkSQL);

$i += 1;

whSQLrequests($result, $linkSQL, $i);

} else {

if ($i < 10) {

returnTheHTMLgood($goodRes, $linkSQL);

}

}

}

}

function returnTheHTMLgood($goodRes, $linkSQL){

require_once '/home/a/altovomz/altovomz.bget.ru/public_html/manager/config.core.php';

require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';

require_once MODX_CORE_PATH.'model/modx/modx.class.php';

$modx = new modX();

$modx->initialize('web');

$holder = $modx->getObject('modResource',array('id' => 1));

$returnStr = "<!-- Start Plinka -->";

$returnStr .= "<div class=\"plitka shk-item\">";

$returnStr .= "<div class=\"image\">";

$SQLtxt = "SELECT * FROM modx_site_tmplvar_contentvalues WHERE (tmplvarid = 3) and (contentid = ".$goodRes['id'].")";

$result = mysql_query($SQLtxt, $linkSQL);

$num_rows = mysql_num_rows($result);

if ($num_rows == 0) {

$SQLtxt = "SELECT * FROM modx_site_tmplvar_contentvalues WHERE (tmplvarid = 3) and (contentid = ".$goodRes['parent'].")";

$result = mysql_query($SQLtxt, $linkSQL);

$goodResTmlVar = mysql_fetch_array($result);

}

$objImg=json_decode(substr($goodResTmlVar['value'], 1, -1));

$returnStr .= "<img style=\"max-width: 180px; max-height: 180px;\" src=\"".$objImg->image."\" alt=\"".$goodRes['pagetitle']."\" class=\"plitka\" />";

$returnStr .= "</div>";

$SQLtxt = "SELECT * FROM modx_site_tmplvar_contentvalues WHERE (tmplvarid = 2) and (contentid = ".$goodRes['parent'].")";

$result = mysql_query($SQLtxt, $linkSQL);

$goodResTmlVar = mysql_fetch_array($result);

$SQLtxt = "SELECT longtitle FROM modx_site_content WHERE id = ".$goodRes['parent']."";

$result = mysql_query($SQLtxt, $linkSQL);

$longtitle = mysql_fetch_array($result);

$returnStr .= "<div class=\"name\">".$goodResTmlVar['value']." ".$longtitle['longtitle']."</div>";

$returnStr .= "<div class=\"name\"><b>".$goodRes['pagetitle']."</b></div>";

$params['imgWidth'] = '14';

$params['starId'] = $goodRes['id'];

$params['starTpl'] = 'StarRatingTpl';

$params['theme'] = 'mystar';

$returnStr .= $modx->runSnippet('starRating', $params);

$returnStr .= "<div class=\"prices\">[[+tv.old-price:isnot=``:then=`<span>[[+tv.old-price:num_format]]</span>`]][[+id:InRub:num_format]] [[++shk3.currency]]</div>";

$returnStr .= "<div class=\"button\">";

$returnStr .= "<form action=\"\\\" method=\"post\">";

$returnStr .= "<input type=\"hidden\" name=\"shk-id\" value=\"".$goodRes['id']."\" />";

$returnStr .= "<input type=\"hidden\" name=\"shk-name\" value=\"".$goodRes['pagetitle']."\" />";

$returnStr .= "<input type=\"hidden\" name=\"shk-count\" value=\"1\" />";

$returnStr .= "<button[[+tv.available:is=`0`:then=` disabled=\"disabled\"`]]>Купить</button>";

$returnStr .= "</form>";

$returnStr .= "</div>";

$returnStr .= "[[+id:getTvValue=`status`:isnot=`0`:then=`<div class=\"[[+id:getTvValue=`status`]]\"></div>`:else=`[[+parent:getTvValue=`status`:isnot=`0`:then=`<div class=\"[[+parent:getTvValue=`status`]]\"></div>`]]`]]";

$returnStr .= "<div class=\"submenu\"> ";

$returnStr .= "<a class=\"like\" title=\"Избранное\"></a>";

$returnStr .= "<a class=\"comp\" title=\"Сравнить\" name=\"compare\" id=\"compare[]\" onclick=\"compare('".$goodRes['id']."')\"></a>";

$returnStr .= "<a class=\"more\" title=\"Подробнее\" href=\"".$goodRes['uri']."\"></a> </div>";

$returnStr .= "</div>";

$returnStr .= "<!-- End Plinka -->";

echo $returnStr;

}

модуль работает не целиком, ниже вызова runSnippet я не менял текст который выводится (брал просто из чанка).

В общем вопрос, что можно сделать что бы это заработало?

tomasoyer
На сайте с 24.03.2013
Offline
55
#67

Ваш код дикая каша. Так не пишут. А если пишите то не просите кого то в нем разбираться.

Опытным путем я выяснил, что он не может получить id текущего ресурса.

Если ваш код работает на странице то id получается через api. Если ваш код дергается через ajax то откуда ему знать какой id ? Передавайте его в запросе.

IR
На сайте с 27.03.2015
Offline
0
#68
tomasoyer:
Ваш код дикая каша. Так не пишут. А если пишите то не просите кого то в нем разбираться.



Если ваш код работает на странице то id получается через api. Если ваш код дергается через ajax то откуда ему знать какой id ? Передавайте его в запросе.

Код уже переписал с использованием xpdo. Подскажите пожалуйста как лучше писать, или где об этом почитать. Ну или какие то ваши советы. Я понимаю, что тут каша, но что по вашему можно улучшить?

tomasoyer
На сайте с 24.03.2013
Offline
55
#69

1. Без относительно движка, мешать php и html не правильно.

2. Использовать api modx

3. учитесь открывая код чужих решений. github по ключу modx выдает достаточно проектов.

IR
На сайте с 27.03.2015
Offline
0
#70

Спасибо за советы, всё понял, кроме вот этого:

tomasoyer:
мешать php и html не правильно

Как быть если мне надо выполнить ajax запрос, который должен возвращать информацию о товарах в определенном виде, как в этом случае? Вызывать чанк из сниппета?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий