Разделы

  
 

[EVO] Помогите пожалуйста с написанием снипета

Помогите пожалуйста с написанием собственного снипета. Необходимо брать данные из базы и выводить их через чанки с помощью плейсхолдеров. Я вот накорябал, но у меня не хочет работать. Вот не знаю где ошибка. Сильно не пинайте я только в PHP и мускуле начал разбираться.


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

Просмотренные товары из таблицы shopkeeper [Evo]

Добрый день. Недавно нашел такую заметку о реализации просмотренных товаров в блоге http://ifreework.com/prosmotrennyie-tovaryi-iz-tabliczyi-shopkeeper/
Идея хорошая, но реализацию в пределах используемого мной shopkeeper, я к сожалению не нашел. К сожалению с первого раза этот снипет у меня не заработал… у разработчика на сайте нет функционала комментирования и обсуждения, что очень жаль.
Вот и решил выложить сюда, для обсуждений и допиливания данного снипета, думаю это будет полезным снипетом.

Называется сниппет cookie
так как просмотренные товары пишет именно в куки.

<?php
class p
{
    /**
     * Индекс
     */
    const COOKIE_KEY  = 'p';
    const GET_KEY     = 'p';
    /**
     * Время жизни куки
     */
    const COOKIE_TIME = 8600;
    /**
     * Получить в виде строки
     */
    const GET_STRING = 'get_string';
    /**
     * Получить в виде массива
     */
    const GET_ARRAY  = 'get_array';
 
    private $_data;
 
 
    function __construct()
    {
        $this->set();
        $this->add();
    }
    
    protected function set()
    {
        $this->_data = (isset($_COOKIE[self::COOKIE_KEY])) ? unserialize($_COOKIE[self::COOKIE_KEY]): array();
    }
    
    public function get($ret=self::GET_STRING)
    {
        return ($ret==self::GET_STRING) ? implode(',', $this->_data) : $this->_data;
    }
    
    public function delete()
    {
        setcookie (self::COOKIE_KEY, "", time() - 3600,"", "." . $_SERVER['HTTP_HOST']);
    }
    
    public function add()
    {
        if(isset($_GET[self::GET_KEY]) && strlen(trim($_GET[self::GET_KEY])>0)) {
            if(array_search($_GET[self::GET_KEY], $this->_data)===false) {
                $this->_data[] = $_GET[self::GET_KEY];
                setcookie (self::COOKIE_KEY, serialize($this->_data), time() + self::COOKIE_TIME,"","." . $_SERVER['HTTP_HOST']);
            }
            
        }
            
    }
}
 
$p = new p();
echo $p->get();
 
 
?>


У меня идёт вложенный вызов просмотренных товаров в карточке товара, это значит, что изначально вывожу все товары

[!catalogView?
&paginate=`1`
&sortBy=`id`
&sortDir=`asc`
&tpl=`prof`
&display=`[+phx:if=`[+phx:get=`all`+]`:ne=``:then=`all`:else=`15`+]`
&descTpl=`tovar`
&toPlaceholder=`catalogViewOutput`
¤tPageClass=`act`
&lang=`prof`
!]

а затем в чанке tovar

вывожу просмотренные

<h2>Недавно просмотренные товары:</h2>
                        <div>
[!catalogView?
&tpl=`prof_recent_list`
&display=`5`
&sortDir=`desc`
&descTpl=`tovar`
&randomize=`1`
&skipDesc=`1`
&products=`[[cookie]]`
!]
                            
                        </div>

Проблемы с выводом изображения и миниатюры через снипет phpthumbof в modx evo 1.05

Установил как снипет назавл в коде снипета прописал <?php
require $modx->config['base_path']. 'assets/snippets/phpthumbof/phpthumbof.snippet.php';
?>
Куда нужно поместить код вызова
[[phpthumbof?input=`[*image*]`&options=`w=450&h=300&far=1`]]
чтобы заданное изображение появилось. Если помещаю на страницу на которой должно быть изображение то вылезает ошибка
« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
Подскажите, что я делаю не так заранее благодарен за любую помощь.

AjaxSearch не переходит на целевую страницу.

Нечто похожее уже описывалось в других топиках, но ответа не нашел.
Проблема следующая:
Есть стандартные выводы формы поиска
[!AjaxSearch? &ajaxSearch=`0` &landingPage=`40` &showResults=`0`!]
и результата поиска на целевой странице (id 40)
[!AjaxSearch? &ajaxSearch=`0` &pagingType=`1` &showInputForm=`0`!]
Целевая страница некэшируемая и недоступная для поиска, разумеется.

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

Версия MODx — 1.0.5, AjaxSearch — 1.9.2

Подскажите, кто знает, где копать?
  • 0
  • 22 ноября 2011, 12:30
  • nz777
  • 3

Проблема с передачей TV-параметра через POST

Возможно вопрос не совсем по modx, а больше по PHP, но может подскажете, как можно реализовать данную задачу.

Необходимо сделать последовательную фильтрацию статей.
Статьи выводятся через Ditto. Параметры передаются методом POST.


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

Работа с js скриптом(снипетом)

Здравствуйте.

Нужно написать js скрипт+снипет для перелистывания страниц без перезагрузки.

Т.е. будет сайт, на котором имеющиеся страницы будут перелистываться не перезагружая страницу.
Перелистывание будет вперед назад ([+previous+] и [+next+] ditto) и по номерам страниц ([+pages+]).

Основная проблема заключается в том, что при перелистывании без перезагрузки тащится весь шаблон страницы и получается что при перелистывании открывается шаблон в шаблоне.
  • +1
  • 25 января 2011, 14:15
  • Int
  • 17

Сравнение tv в сниппете

Добрый день!
У меня такая проблема.
Надо сравнить tv в сниппете пустой он или нет и по результату вывести ссылку или ничего не выводить.
Хотел решить этот вопрос с помощью сниппета prinpage
<?php
$output = "";
if ($_GET["print"]==1) {
	$output = '<a href="[*DownloadLink*]">Скачать</a>';
}
else {
	$output = '';
}
return $output;
?>

Но тут проверяется $_GET параметр в url. А мне надо в самом ресурсе проверить tv.

Но кажись не хватает думалки((
Здесь Сказано что можно проверить поле на длинну с помощью PHx.
Может кто сталкивался с этим?
Буду рад развернутому ответу.

FlvPlay - проигрыватель видео в формате FLV для MODx Evo

Сниппет может быть использован для создания видеоархива, а можно просто вставлять ролики на сайт
:: Установка
================

— Скачайте и распакуйте .zip архив
— Загрузите папку flvplay в директорию assets/snippets/
— Создайте новый сниппет с именем FlvPlay и вставьте туда php код из файла FlvPlay.php



( Читать дальше )
  • +7
  • 4 сентября 2010, 18:39
  • yar-it
  • 7

переводчик гугл

имеем http://www.codediesel.com/php/google-translation-php-wrapper/
<?php
 
require_once('googleTranslate.class.php');
 
/* Initialize the class translate class */
$gt = new GoogleTranslateWrapper();
$sampleText = "Bonjour de cette partie du monde";
 
/* translate(string, to_language, from_language) */
echo $gt->translate($sampleText , "en", "fr");
 
/* This should print 'Hello from this part of the world' */
 
?>

код рабочий проверил
но мне нужно уже имеющуюся переменную $title воткнуть вместо бонжур($sampleText = «Bonjour de cette partie du monde»;)
и на выходе получить ее же но переведенную, тоесть не печатать, а просто получить значение
что бы можно было дальше с ней работать в снипете
  • 0
  • 28 июля 2010, 22:42
  • 1234
  • 6