Вход • Регистрация

Всего найдено: 11

  • 14 марта 2015 г.
  • Очень плохая документация по созданию модуля на Diafan Cms, особенно для тех кто не работал с другими cms.
    Админку сделал, очень легко, описано в документации достаточно, а если посмотреть про пользовательскую часть, то беда.
    Особенно не понятно, с шаблонизатором и что в каком порядке вызывать.
    Так же пример в документации, зачем его нужно было выкладывать, раз он не рабочий)
  • 16 марта 2015 г.
  • Вроде бы все понятно, не ясно вот что:
    1)list_() – формирует список элементов;
    list_category() – формирует список элементов в категории;
    first_page() – первая страница модуля;
    id() – формирует данные для страницы элемента;
    show_block() – формирует данные для шаблонной функции.
    Я так понимаю это просто формальность и кроме того что эти функции просто так называются ни какого большего функционала не носят?
    2)работа с отображением:
    не совсем понятно что и как передается шаблонизатору.
    В примере именно вывод данных не работает.
    И так ли важно названия div'ок в view файлах?
    Шаблонизатор парсит их или это чисто для css?
  • 16 марта 2015 г. , редакция: 1426475271
  • С шаблонизатором разобрался, только один момент.
    Я беру данные с бд и помещаю их в $result['rows'].
    Где поле 'a' - связано с другой таблицей.
    Делаю запрос на объекты и просто в цикле помещаю их в
    $result['row2'][$row['id']]=$row;
    И при выводе получается:
    foreach($result["rows"] as $row) $result['row2'][$row['a']];
    Правильно ли все)
    Нет ли более простых, лучше способов?

    Нет)) Не шучу, возможно да, вопросы могут показаться вам простыми, но для того этот форум и создан))
    Опыт в программировании есть, но не на php, тем более с использованием cms.

    На счет show_block разобрался, нужная вещь))))
    А вот другие функции.
    Допустим в админ панели довольно таки много чего автоматизированно, вывод данных и т.п. Разобрался во всем, в документации много чего написано и все в одном месте, на счет же пользовательской части практически весь функционал разбросан.

    Так же на счет функции id:
    В функции Init мы перехватываем передана ли переменная show
    if ($this->diafan->_route->show)
    {
    $this->model->id();
    }
    После чего вызываем функцию id:
    в ней лично я ни чего не нашел что бы помешало изменить название функции. Или я ошибаюсь?
    Так же можно описать функцию любую и в зависимости от $this->diafan->_route->show вывести данные.
    Может ли это в последствии помешать какому нибудь функционалу?
  • 16 марта 2015 г.
  • Ну как раз такой ответ я ждал)))
    Есть список команд, находятся в базе games_teams(id, name)
    И есть список игр между командами, таблица games(id, a(команда 1), b(команда 2))
    Все это реализовал в админке как один модуль, все нормально работает добавляет и т.п.
    Теперь нужно вывести все это дело в пользовательскую часть.
    Команда 1 vs Команда 2
    Команда 3 vs команда 4
    В таком роде.
    Ну естественно количество данных я сократил, в базу еще записывается и дата, изображение(команды, игры).
  • 16 марта 2015 г.
  • Вы здесь что бы осуждать людей?
    Пост был сделан 14 марта, 2 дня прошло, ни кто ни чего внятного не ответил.
    Не думал что официальный форум - флудилка и ни чего более.
  • 16 марта 2015 г.
  • Цитата
    Ну и труда вложили, Боже!!!

    Это сарказм? Или же действительно можно сделать проще?
    Если что пишется новый модуль, а не пытаюсь дополнить что-то))
  • 16 марта 2015 г. , редакция: 1426530421
  • Вот как сделал я:
    Пока что просто вывожу список игр.
    В Init: $this->model->list_();
    В модели:
    Код

    public function list_()
    {
    if ($this->diafan->_route->cat)
    {
    Custom::inc('includes/404.php');
    }

    $time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));
    $cache_meta = array(
    "name" => "list",
    "lang_id" => _LANG,
    "page" => $this->diafan->_route->page > 1 ? $this->diafan->_route->page : 1,
    "site_id" => $this->diafan->_site->id,
    //"role_id" => $this->diafan->_users->role_id ? $this->diafan->_users->role_id : 0,
    "time" => $time
    );

    //кеширование
    if (! $this->result = $this->diafan->_cache->get($cache_meta, $this->diafan->_site->module))
    {
    ////navigation//
    //$this->diafan->_paginator->nen = $this->list_query_count($time);
    //$this->result["paginator"] = $this->diafan->_paginator->get();
    ////navigation///
    //сохранение кеша
    $this->diafan->_cache->save($this->result, $cache_meta, $this->diafan->_site->module);
    }
    $rows = DB::query_fetch_all("SELECT * FROM {games}");
    foreach($rows as $row)
    {
    $this->result["rows"][] = $row;
    }
    $teams = DB::query_fetch_all("SELECT * FROM {games_teams}");
    foreach($teams as $team)
    {
    $this->result["teams"][$team['id']] = $team;
    }

    foreach ($this->result["rows"] as &$row)
    {
    $this->format_data_element($row);
    }
    $this->result['view'] = 'show';

    }


    private function format_data_element(&$row)
    {
    if (! empty($row["date"]))
    {
    $row["date"]=date('d.m.Y h:i:s', $row['date']);
    }

    }




    Запросы конечно можно в отдельную функцию лучше поместить, например:
    Код

    private function list_query($time)
    {
    $rows = DB::query_range_fetch_all("SELECT * FROM {games}");
    return $rows;
    }


    И файл view.show (конечно логичнее было бы назвать view.list, делал пока просто разобраться)
    Код

    foreach($result["rows"] as $row)
    {
    echo $row['date'].'</br>';
    echo $row['tournament'].'<div class="games">'.$result['teams'][$row['a']]['name']. vs '.$result['teams'][$row['b']]['name'].'</div>';
    echo '<hr>';
    }
  • 16 марта 2015 г.
  • Ну я не знаю) если магазин серьезный и конкуренты действительно злые) То рано или поздно придется поставить проверку по СМС, обойти все остальные методы можно довольно легко, да и 'авторитет' интернет магазина поднимается когда имеются такие системы как смс уведомления и т.п.
    Хотя если и сделать проверку по смс, то можно обойти, например в YOTA можно менять номер телефона, не знаю правда есть ли там ограничения на это, но опять же, обойти и автоматизировать можно) Ну и если конкуренты не ленивые)
  • 08 марта 2015 г.
  • Здравствуйте, нужно реализовать сайт на нескольких под доменах, так же как и на этом сайте:
    diafan.ru
    addons.diafan.ru
    user.diafan.ru.
    Как проще всего реализовать это в Diafan CMS?
    Я так понимаю мне нужно отслеживать под домен и в зависимости от него выводить определенный шаблон сайта, так же авторизация, я так понимаю стандартная сессия не рассчитана на это?
    И будет ли лицензия распространятся на под домены?

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум