Разделы

  
 

Не получается на сайте (MODx) создать title заголовки.

Помогите пожалуйста решить проблему с сайтом! Раньше с админками дела не имела, но тут стала лазить по сайтам-инструкциям, добавила чанк head, занесла код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <base href='[(site_url)]'>
	<meta name="author" content="Luka Cvrk (www.solucija.com)" />
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	<link rel="stylesheet" href="css/style.css" type="text/css" />
	<title>[*pagetitle*] | Уроки по созданию сайтов на CMS Modx</title>
        <meta name="description" content="[*longtitle*]" />
</head>


Также в моей админке появились metaTitle, metaDescription и metaKeywords, я их послушно заполняю заголовками и ключевыми словами, но Заголовков по прежнему нет, вместо них- путь ссылок.

Вот так это выглядит: nam4you.ru/gallery/o-nas (и все страницы сайта, разумеется, также)

Может, Вы решите, что я тупо пыталась включить и подсоединить все, что можно- не буду спорить, поскольку не разбираюсь пока в этом, надеюсь, одолею с Вашей помощью! Очень жду ответов!!!

После регистрации не активируется аккаунт.

Здравствуйте еще раз.
Сегодня уже обращался с проблемой community.modx-cms.ru/blog/questions/6104.html.
К счастью её решили, но далеко уйти не успел, как вылез новый бок. Теперь я лучше подготовился и часа полтора потратил на изучение файлов, все вроде прописанно верно.
Суть проблемы. После регистрации, приходит письмо на почту с ссылкой на активацию, нажав на ссылку ничего не происходит и аккаунт не активируется.

Помогите :)

сниппет ConfirmRegister

<?php
/**
 * Register
 *
 * Copyright 2010 by Shaun McCormick <shaun@modx.com>
 *
 * Register is free software; you can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 *
 * Register is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * Register; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA 02111-1307 USA
 *
 * @package login
 */
/**
 * MODx Confirm Register Activation Snippet. Snippet to place on an activation
 * page that the user using the Register snippet would be sent to via the
 * activation email.
 *
 * @var modX $modx
 * @var Login $login
 * @var array $scriptProperties
 *
 * @package login
 */
require_once $modx->getOption('login.core_path',null,$modx->getOption('core_path').'components/login/').'model/login/login.class.php';
$login = new Login($modx,$scriptProperties);

$controller = $login->loadController('ConfirmRegister');
$output = $controller->run($scriptProperties);
return $output;

Требуется программист по modx (начинающий)

Добрый День.
Требуется программист по modx на удаленную работу, достаточно начального уровня. Постоянный объём работ по созданию сайтов обеспечим. Достаточно умение пользования базовыми снипетами: ditto, wayfinder, eform. Оплата почасовая, либо фиксированный оклад.
Для уточнения условий работы писать на youritweb@gmail.com

[REVO] При регистрации, на почту приходит пустое письмо

Здравствуйте.
Столкнулся в проблемой. Пользуюсь обычным пакетом Login для революшена.
В настройках системы вставил текст который должен приходить на почту. Тема изменилась, но само письмо пустое приходит.
Не совсем понятно, как оно вообще отправляет письма, потому что приходят письма с моего рабочего почтового ящика, который я указывал при установки модХ. И соответственно ни логин ни пароль ни где не вводил. Но сам факт письма приходят, но пустые.
По сути письмо может и не очень нужно, но пользователи не могут пройти подтверждение. Может можно как-то отключить подтверждение, чтобы сразу были активными?
Но, правда если забудут пароль, тогда им пароль не восстановить.

Помогите разобраться, пожалуйста :)

Random

Здравтвуйте! У меня такая ситуация: в одном чанке я использую 4 раза вот такой код
[!Ditto? &summarize=`1`  &startID=`1`   &randomize=`1` &depth=`6` &hideFolders=`1` &tpl=`randompost`!]

для того, чтобы выводить 4 случайные картинки. Но картинки всегда одинаковые. Поставить &summarize=`4` не подходит, так как я вызываю дитто в отдельной ячейке таблицы.

Можно ли перезапускать рандом перед каждым вызовом дитто?

MODx Revolution обучение начинающих. Урок 4. Шаблон MODx revo - интеграция




Добро пожаловать в четвертый урок из серии MODx Revolution для начинающих. В предыдущих уроках мы прошли шаг за шагом процесс установки MODx Revolution на удаленный сервер и узнали, как осуществить некоторые базовые конфигурации сайта, такие, например, как изменить название сайта.
Мы также рассмотрели установку некоторых расширений из репозитория MODx и управление пакетами. В этой статье мы собираемся рассмотреть, как работать с шаблонами в MODx Revolution.
В качестве примера вы можете использовать любой обычный статический HTML / CSS шаблон и затем преобразовать его в динамический шаблон MODx Revolution.

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

Чат в jabber

Пока шли разговоры про то что и как делать с чатом и как его создать, я запилил чат в Jabber
xmpp:modx@conference.jabber.ru

у кого нет учетки на jabber

PS чтобы не было цирка используйте ники сообщества))

[evo] вытащить ID документов определенного уровня вложенности

Добрый день, возникла потребность тащить докменты с конкретного уровня вложенности. Стандартный метод getChildIds тащат с 1 по заданный уровень.

В итоге благодаря SSDTyphon, появились два снипета:

1) Тащит только id документов из базы и выдает их через ","
<?php
if(!isset($id)) $id = 2;
if(!isset($level)) $level = 1;

if ($level > 1){
    $tblsc = $modx->getFullTableName('site_content');
    $access = "AND lvl{$level}.deleted=0 AND lvl{$level}.published=1";
    $inner = '';
    for ($i = $level-1; $i > 0; --$i){
        $nextlvl = $i+1;
        $inner .= "INNER JOIN $tblsc AS lvl{$i} ON lvl{$nextlvl}.parent=lvl{$i}.id AND lvl{$i}.deleted=0 AND lvl{$i}.published=1 ";
    }
    $sql = "SELECT lvl{$level}.id FROM $tblsc AS lvl{$level} " . $inner . "WHERE lvl1.parent=$id $access;";
    $res = $modx->db->query($sql);

    $children = array();
    while($childId = $modx->db->getValue($res)){
        $children[] = $childId;
    }
}
else{
    $children = $modx->getChildIds($id, 1);
}

return implode(',', $children);
?>


2) По сути аналог $modx->getDocuments(), где в $id заданы все документы уровня, поменяв строчку $child[] = $v['id']; на любую нужную, можно легко вытащить нужные поля документов. Можно менять SQL запрос, тогда можно ограничивать выборку еще сильнее.

<?php
if(!isset($id)) $id = 2;
if(!isset($level)) $level = 5;

if($level>2) {   
    
if(!function_exists('LevelChildren')){
        function LevelChildren($docId, $levels){
          global $modx;
          $tblsc = $modx->getFullTableName('site_content');
          $access = "AND lvl{$levels}.deleted=0 AND lvl{$levels}.published=1";
          $inner = '';
          for ($i = $levels-1; $i > 1; --$i){
            $nextlvl = $i+1;
            $inner .= "INNER JOIN $tblsc AS lvl{$i} ON lvl{$nextlvl}.parent=lvl{$i}.id AND lvl{$i}.deleted=0 AND lvl{$i}.published=1 ";
          }
          $sql = "SELECT lvl{$levels}.* FROM $tblsc AS lvl{$levels} " .
             $inner .
             "WHERE lvl2.parent=$docId $access;";
          $res = $modx->db->query($sql);
          $res = $modx->db->makeArray($res);
          foreach($res as $v) {
                    $child[] = $v['id'];
                    }

        return implode(",",$child);
}

}
    $levelID = LevelChildren($id,$level);
    return $levelID;
}
else { return '';}
?>


Вызов: [[getLevelChild&? &id = `2`&level = `5`]]

id — ID родителя. level = `5` — уровень относительно родителя (учитывая, что родитель на 1 уровне, а не 0)

Оригинал тут

ПС изначально использовал для той же цели конструкцию:

$array1 = $modx->getChildIds($parent,$depth);
$array2 = $modx->getChildIds($parent,$depth-1);
$childParents = array_diff($array1, $array2);

[Evo] Снипет отображения последних просмотренных товаров

Уважаемые,

взял тут

Стандартно можно вывести лишь url и имя.
Как вывести фотографию которая хранится в TV параметре?

Заранее, спасибо!

<?php
$mode = isset($mode) ? $mode : 'show';
$outerTpl = isset($outerTpl) ? $outerTpl : '@CODE: <h1>Вы уже смотрели:</h1><ul class="[+outer-class+]">[+rows+]</ul>';
$outerClass = isset($outerClass) ? $outerClass : 'last-view';
$rowTpl = isset($rowTpl) ? $rowTpl : '@CODE: <li><a href="[+url+]">[+name+]</a></li>';
$maxRows = isset($maxRows) ? $maxRows : 10;

if(!function_exists('fetchTpl')) {
    function fetchTpl($tpl){
        global $modx;
        $template = "";    
        if(substr($tpl, 0, 6) == "@FILE:") {
            $tpl_file = MODX_BASE_PATH . substr($tpl, 6);
            $template = file_get_contents($tpl_file);
        } else if (substr($tpl, 0, 6) == "@CODE:") {
            $template = substr($tpl, 6);
        } else if($modx->getChunk($tpl) != "") {
            $template = $modx->getChunk($tpl);
        } else {
            $template = false;
        }
        return $template;
    }
}

if(!function_exists('parseTplChunk')) {
    function parseTplChunk($tpl,$placeholder=array()){
        $chunk = fetchTpl($tpl);
        foreach ($placeholder as $key => $value){
           $chunk = str_replace("[+".$key."+]", $value, $chunk);
        }
        return $chunk;
    }
}

$item = array();

if (isset($_COOKIE['last_view']) and $_COOKIE['last_view'] != '') {
    $item = explode(',', $_COOKIE['last_view']);   
}


switch ($mode) {
    case 'register':
        if (!in_array($modx->documentIdentifier, $item)) {
            if (count($item) >= $maxRows) {
                array_shift($item);
                array_unshift($item, $modx->documentIdentifier);
            } else {
                array_unshift($item, $modx->documentIdentifier);
            }
            setcookie('last_view', implode(',', $item), time()+60*60*24*30, '/');
        }
    break;
    
    case 'show':
        
        if (!empty($item)) {
            $docs = $modx->getDocuments($item);
            $output = '';
            foreach ($docs as $doc) {
                $rows .= parseTplChunk($rowTpl, array('url'=>$modx->makeUrl($doc['id']), 'name'=>$doc['pagetitle']));
            }
            
           return parseTplChunk($outerTpl, array('rows'=>$rows, 'outer-class'=>$outerClass));
        }
    break;
}
?>

ps пытался так:
$rows .= parseTplChunk($rowTpl, array('url'=>$modx->makeUrl($doc['id']), 'name'=>$doc['pagetitle'], 'image'=>$modx->getTemplateVar('img_product_home')));

но не работает, выводит вместо значения TV параметра текст:
Array

[Evo] Поместить все значения в TV параметр из другого TV

Уважаемые,

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

Как можно это сделать? =]