Перейти к контенту

Поиск в системе

Результаты поиска по тегам 'JQ-админ'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • IBResource
    • Новости IP.Board
    • Коммерческие вопросы
    • Отзывы и пожелания
  • Invision Power Services
    • Новости компании InvisionPowerServices
    • Новости магазина модификаций IPS Marketplace
  • Для клиентов
  • Технические вопросы
    • Общие вопросы по IPB 4
    • Общие вопросы (по IPB 3.4.x)
    • Общие вопросы (по IPB 3.3.x)
    • Общие вопросы (по IPB 3.2.x)
    • Общие вопросы (по 3.0.x и 3.1.x)
    • Общие вопросы по устаревшим версиям
    • IP.Blog
    • IP.Gallery
    • IP.Downloads
    • IP.Content
    • IP.Nexus
    • Документация
    • Конвертирование
    • FAQ
  • Модифицирование
    • Модифицирование продуктов
    • Поддержка модификаций из архива
    • Дизайн и графика
    • Запрос на создание модификации
    • Модификации в разработке
  • Другие продукты и услуги
  • Форумы на других языках
  • Другое
    • Программирование
    • Хостинг
    • Оффтопик
    • Информационные технологии
  • Тех-форумы

Блоги

  • Тестовый блог
  • GPI's Блог
  • sM1Le's Блог
  • Hugo Weaving's Блог
  • Свободное слово
  • GiV'e it to me BaBY
  • sw04 blog
  • IP Blog
  • Borland_delphi_6's Блог
  • Сервак держится на четырех больших черепахах, которые питаются душами забаненных
  • vasyast пишет
  • AirKing's Блог
  • /dev/urandom
  • Hostem's bug
  • mylipetsk's Блог
  • Invision blog
  • PageMaster's Блог
  • Alvor's Блог
  • GrafDragon's Блог
  • Allure's Блог
  • Записки горшечника
  • GUNN's Блог
  • АIR0
  • -=MIF=-'s Блог
  • Anton S Soloviev Blog
  • WinC's Блог
  • Дневник программиста
  • sol's Блог
  • Vanek_MT's Блог
  • Scamp's Блог
  • [Artx5]'s Блог
  • Dvvarf's blog
  • kseny's Блог
  • maxi4u's Блог
  • Док's Блог
  • Блог
  • s-and's Блог
  • Nikolya
  • M-K's Блогнот
  • Roman Borisovich's Блог
  • NtMike's Блог
  • Сочи Блог : Sochi Blog
  • park's Блог
  • Dron Blog
  • Модификации IPB на заказ
  • Magicmedia's блог
  • ozersk's Блог
  • TESmods блог
  • Чердачок xRay'я
  • Jon06's Блог
  • Arqus' Блог
  • RaPl3r's Блог
  • Yama's Блог
  • groove_SQL's Блог
  • Спорт
  • IronMaster's Блог
  • nuclearman's Блог
  • xaber's Блог
  • Lazek's Блог
  • konstz91's Блог
  • oddangel's Блог
  • hil's Блог
  • GOT1
  • Олег «Sannis» Ефимов
  • numaster's Блог
  • bazhen's Блог
  • silenter's Блог
  • Крепость сожаления
  • cthu's Блог
  • NOIP's Блог
  • _Yana_
  • Saratoff-Life Blog
  • Hard_candy's Блог
  • jaxumi's Блог
  • Grins' Блог
  • proc: Anomaly
  • Модернизация VRPG
  • kuzka's Блог
  • Vadim903's Блог
  • Квэнди
  • Президент's Блог
  • Как мы ломали
  • ddvhouse's Блог
  • unixx's Блог
  • ViGOur's Блог
  • BoomerYA's Блог
  • First's Блог
  • Tomahawk's Блог
  • depresnyck's Блог
  • vkray's Блог
  • dallas' Блог
  • user226's Блог
  • bespechnaya333's Блог
  • Smartfon4er's Блог
  • POLICEXPERT
  • Обо всём понемногу.
  • anmakddt's Блог
  • ghenazmei's Блог
  • Интернет магазин для похудения и борьбы с целлюлитом
  • Rostov114's Блог
  • ovod's Блог
  • rejik's Блог
  • olegvs' Блог
  • lunux's Блог
  • Defender123's Блог
  • Форум знакомств
  • Tokarevs' Блог
  • vredina's Блог
  • John's Блог
  • ulaben's Блог
  • domovoy2's Блог
  • LuuR's Блог
  • Блог Гулько ЗлючкО
  • pank's Блог
  • akuzya's Блог
  • mumiya's Блог
  • eastimpex's Блог
  • BenZeR's Блог
  • magness
  • juvio's Блог
  • pivovoz's Блог
  • Zaya's Блог
  • Ravencool's Блог
  • levon's Блог
  • interbody.ru's Блог
  • Farkop's Блог
  • pkMIXER's Блог
  • Gucci Блог
  • ezik's Блог
  • rasetyplit's Блог
  • Elfet's Блог
  • anyba's Блог
  • d2222's Блог
  • Andrey Zentavr's Блог
  • mentolsoft's Блог
  • Dum spiro spero
  • Полезные скрипты для конвертации 2.3.6 > 3.0
  • Shin Akuma's Блог
  • Ancђita's Блог
  • Блог Юзера
  • ocharovanie's Блог
  • Unspoiled's Блог
  • Работы с IPB
  • KVentz's блог
  • Steve Fox
  • dtrex's Блог
  • studentlabinsk's Блог
  • Nadeshda's Блог
  • Dr_body's Блог
  • RealWorld's Блог
  • napoleon21's Блог
  • Зот Малахов (гитарист, композитор
  • foxicate's Блог
  • luna-luna's Блог
  • Свадебный бизнес моя мечта
  • 34V.sehost
  • Блог Миры Лирман
  • vimaster's Блог
  • baumansoft's Блог
  • Блог
  • Chacha's Блог
  • Спортивный блог
  • Reysler's блог
  • Баронеса's блог
  • MDmitry's блог
  • MDmitry's блог
  • Блог, мой блог...
  • Черного и белого, только не Горелова!
  • nikolay2's блог
  • nek2's блог
  • NATTO's блог
  • NATTO's блог
  • VOVER's блог
  • Пишу
  • vint1's блог
  • серж
  • ккк
  • Eliyagu - blog
  • Eliyagu's блог
  • Romp's блог
  • Я клиент IBR
  • Sheridan's блог
  • maxi4u's блог
  • maxi4u's блог
  • =M@X='s блог
  • CloseGL's тест блог
  • tj.anton
  • picapus' блог
  • Описание новых возможностей IP.Board 3.1
  • rapsody120's блог
  • slezinkka's блог
  • Silen
  • Pirs' блог
  • Костик Демидов's блог
  • kellas' блог
  • XoTTa6bI4_'s блог
  • greenjek's блог
  • injury87223's блог
  • cLauzz's блог
  • vania290's блог
  • Janke_Home's блог
  • odetta's блог
  • pops' блог
  • nickostyle's блог
  • makus' блог
  • Максим Антипенко's блог
  • test's блог
  • irina20052's блог
  • SH блог.
  • yurclub's блог
  • Yape's блог
  • DVD Soft
  • ste0phen's блог
  • kagorec's блог
  • Joel35's блог
  • algin's блог
  • shelessta's блог
  • Roggue
  • www.TraderGroup.ru
  • de_coder's блог
  • aig's блог
  • Из жж и вконтакте )
  • naladchik's блог
  • Офелия Картман's блог
  • Использование
  • Ошибки: =+)ъ|"][ и их исправление :-)
  • ~eXtreme~'s блог
  • alexeee's блог
  • Silent Assassin's блог
  • tomgame's блог
  • Массакр бензопилой
  • Ryo's блог
  • yakushin's блог
  • Asin's блог
  • ggggg's блог
  • Tails
  • sofi7666's блог
  • Worldoftanks Мир игр
  • zavorohin's блог
  • Иннокентий's блог
  • Oween's блог
  • forumlkj's блог
  • Новости от разработчиков IP.Board
  • Живые мысли.
  • Maksim Slesarev_89373's блог
  • Nikola12's блог
  • Aspen's блог
  • kazak11's блог
  • Марк_Минаков's блог
  • PONTA's блог
  • Highlight's блог
  • kernel.exe's блог
  • Оптина Пустынь's блог
  • sergay's блог
  • ElenaDuzh's блог
  • blog's
  • Дмитрий Николаев's блог
  • derbi's блог
  • alex ggg's блог
  • AndyBe's блог
  • SergeySV's блог
  • Николай Р
  • Оптина_Пустынь's блог
  • Дмитрий_Николаев's блог
  • Andrey0011's блог
  • v_narure_blog
  • Sh1ning's блог
  • IT
  • Всё для web-мастера...
  • ikea's блог
  • SenjaLp's блог
  • Senja's блог
  • Тестовый блог
  • profits' блог
  • yodas' блог
  • koha777's блог
  • t0rik's блог
  • razerw's блог
  • Блог команды AlterVega
  • markynem's блог
  • AlfOz's блог
  • Romzes24's блог
  • LandofYs.narod.ru
  • OxsanaKorona's блог
  • mishkalom's блог
  • zikadazo's блог
  • Olimnoz's блог
  • SirbuV's блог
  • crudman's блог
  • Марк_Королёв's блог
  • Gennadiy's блог
  • Delplel Blog
  • Алексей_Батурин's блог
  • antigsm's блог
  • bboyblaster's блог
  • Плагины от Smscoin
  • Dinar's блог
  • Syarexs' блог
  • instrumentariy's блог
  • saturn19 blog
  • booi's блог
  • jakki's блог
  • Мой блог
  • артемпапученко's блог
  • L-7's блог
  • Калиф Порния's блог
  • Сергей_Коваленко_127236's блог
  • test-blog
  • Inc.'s блог
  • NCsoft
  • Дима Кавун's блог
  • Инструкции
  • Teaminds_yandex's блог
  • Golemar's блог
  • dimamaster's блог
  • Maxim Petukhov's блог
  • Has
  • Сертификационный центр "Ростест Сибирь"
  • Шпаргалки
  • Интернет магазин одежды RusFashion.net
  • Блог Александра Санина
  • GURU.tm's блог
  • dvd-net.ukrainianforum.net's блог
  • Xolnewola's блог
  • GlobalLux - ремонт квартир Киев
  • Space Ball
  • Сергей Демьянов's блог
  • Мечтательница's блог
  • Nastiazavtra's блог
  • mediagroup's блог
  • MbokSukirman
  • rekanpoker
  • hotwebgames' блог
  • Situs Joker Dealer Online
  • Tangkas HKB
  • Casino Online Indonesia
  • Cara untuk Menang Slot Online
  • Олег Кузьмин
  • Syava's блог
  • Роман Сечин
  • Olivis' блог
  • test

Категории

  • Файлы
    • IP.Board 3.4.X
    • IP.Board 3.2.x
    • IP.Board 3.0.x-3.1.x
    • IP.Board 2.2.x-2.3.x
    • IP.Board 2.1.x
    • IP.Board 2.0.x
    • IP.Board 1.x.x
  • Модификации модулей
    • IP.Blog
    • IP.Gallery
    • IP.Downloads
    • IP.Content
    • IP.Nexus
  • Стили IP.Board
    • IP.Board 3.2.x
    • IP.Board 3.0.x-3.1.x
    • IP.Board 2.2.x-2.3.x
    • IP.Board 2.1.x
    • IP.Board 2.0.x
    • IP.Board 1.x.x
  • Языковые пакеты
    • IP.Board 3.2.x
    • IP.Board 3.0.x-3.1.x
    • IP.Board 2.2.x-2.3.x
    • IP.Board 2.1.x
    • IP.Board 2.0.x
    • IP.Board 1.x.x
    • IP.Board 3.4.x,
  • Графика для форумов
  • Community Resources
  • Модификации для IPB 4

Группы продуктов

  • Test
  • Готовый форум на базе IP.Board 3
  • Форум на базе InvisionPower Community Suite 4

Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


О себе


MSN


Заголовок


ICQ


Yahoo


Jabber


Skype


Город


Интересы

Найдено 4 результата

  1. JQ-админка. Добавление новой секции. 1. Придумать короткое имя секции на английском. 2. Добавить в config.php элемент массива $sections: Например: $sections['payment'] = array( 'name' => 'Платежи', 'items' => array( 'distrib'=> 'Разнос платежей', 'return'=> 'Возврат средств', ), ); Где payment - имя секции. Секция появится в главном меню. 3. В /grids/ создать папку с именем секции. В нее положить классы гридов. 4. В /templates/ создать папку с именем секции. В нее положить шаблоны smarty. 5. (Не обязательно) В /libs/ создать контроллер и модель секции. По изменениям в механизмах работы. Практика показала, что в подавляющем большинстве интерфейсов центральное место занимают гриды. Так или иначе, все вращается вокруг них. Это привело к тому, что в контроллерах постоянно повторяются однотипные функции. Плохо. В новой схеме всё максимально автоматизируется и упрощается. Контроллер Чтобы обратиться к функции test секции payment, используем ?section=payment&act=test Если контроллер секции отсутствует, либо соответствующая функция в нем не определена, то возможны два варианта. Если у act есть префикс 'jq_' (например: 'jq_orders'), то подгружается класс грида с таким названием. Если в запросе есть oper - вызывается соответствующее действие грида (вставка, редактирование и т.п.) Если нет - происходит выгрузка данных в грид (JSON). [*]В ином случае напрямую вызывается tpl-шаблон с именем, аналогичным act. В примере выше произойдет вывод шаблона test.tpl из секции payment. Если вам нужны дополнительные переменные в шаблоне - создавайте контроллер и определяйте свои функции.
  2. Работа с гридами. Основная документация по JS-части: http://www.trirand.com/jqgridwiki/doku.php...wiki:jqgriddocs Серверная часть представлена классами гридов и шаблонами. Классы. В /grids/ лежит базовый класс - jq_base. Он содержит реализацию многих стандартных функций "по умолчанию". От него наследуются классы отдельных гридов. Необходимый минимум (на примере jq_payment): <?php class jq_return extends jq_base { protected function init() { //определение имени главной таблицы $this->tblName = 'payment_tbl_return'; //основной запрос на выборку $this->query = " SELECT {fields} FROM {$this->tblName} pr JOIN tbl_order o ON (pr.order_id=o.id) JOIN tbl_order_payment p ON (pr.order_id=p.order_id) JOIN lst_payment_types lp ON (lp.id=pr.payment_type) WHERE {where} "; //колонки грида $this->cols = array( 'id' =>array('name' => '№ пп', 'db' => 'pr.id', 'width' => 5, ), 'order_number' =>array('name' => '№ заказа', 'db' => 'o.order_number', 'width' => 10, ), ); } } Этого достаточно. Грид уже умеет делать постраничный вывод, сортировать по любому из полей, осуществлять поиск. Также умеет делать INSERT, UPDATE и DELETE. Функции Если вам нужно особое поведение, то оно достигается перегрузкой соответствующих методов: init() - Вызывается в конструкторе ПОСЛЕ получения массива $this->request, но ПЕРЕД любыми другими действиями. parseRow($r) - Вызывается для каждого ряда таблицы. Принимает массив, возвращает его же. Пример -> добавление элемента '_class' => 'green' для покраски строки в зеленый цвет. op_add($ins) - Добавление ряда (INSERT). Принимает массив значений для вставки. op_edit($id, $upd) - Апдейт ряда (UPDATE). Принимает id и массив значений для обновления. op_del($id) - Удаление ряда (DELETE). Принимает id или список id через запятую (multiselect) для удаления. oper_data($data) - Возвращает массив значений. Вызывается ПЕРЕД op_add и op_edit. Нужно в тех случаях, когда в одном гриде используются обе эти функции, и в обоих должно быть одинаковое преобразование данных перед записью. Для определения custom-операций следует создавать функции с префиксом 'op_' аналогично стандартным. Например, oper=test. Функция будет op_test. Custom-операции не имеют аргументов. Все данные в них следует получать из $this->request. Колонки Колонки грида определяются массивами $this->cols и $this->cols_default. $this->cols_default содержит опции, которые применяются ко всем колонкам, для которых они явно не определены. Например: $this->cols_default = array('align' => 'center', 'formatter' => 'integer'); - выровняет все колонки по центру и применит к ним formatter. По структуре $this->cols: Ключи массива - это идентификаторы колонок. Они используются везде - в colModel, в передаваемых данных, в запросах к БД (pt.id AS id). Необходимо избегать идентификаторов, совпадающих с техническими переменными jqGrid или админки: oper, nd, _search, section, act и т.д. В будущем будет включена защита, которая будет выкидывать Notice в случае совпадения. Значения соответствуют структуре colModel jqGrid'а. Со следующими особенностями: Ключ 'name' Задает имя колонки. Русское. Для людей. По умолчанию - пустая строка. Ключ 'db' Поле для подстановки в {fields} и {where}. Может быть выражением. Примеры: pt.id COALESCE(pt.id, 0) round(price) * discountПо умолчанию аналогично идентификатору колонки, поэтому в простых запросах ключ db следует опускать. Ключ 'manual' Указывает на то, что данные НЕ следует брать из БД, а они будут сформированы в parseRow вручную. Такая колонка не попадет в {fields}, по ней невозможен поиск и сортировка. Ключ 'db' в этом случае игнорируется. Ключ 'unset' Действие противоположно manual. Колонка выбирается из БД, по ней возможен поиск и сортировка. Но она не попадает в colModel и не передается в составе результатов от сервера. Нужно для особых случаев -> в обычной жизни лучше прятать стандартным ключом 'hidden'. Ключ 'id_flag' Явно указывает поле, которое будет считаться id ряда в jqGrid. По умолчанию первое поле становится id. Ключ 'count_sum' Добавляет подсчет суммы по этой колонке. Это происходит в рамках count-запроса. Значения записываются в userdata. Пример работы с footerrow можно посмотреть в партнерке. Определение JS-функций Если вам нужно добавить в colModel имя функции (например, dataInit при редактировании), следует добавить перед ним знак апострофа. Например: 'sum' =>array('name' => 'Оплата', 'db' => 'b.sum', 'width' => 10, 'editable' => true, 'editrules' => array('integer' => true, 'custom' => true, 'custom_func' => '`check_sum'), ),Хотя это и возможно, следует воздержаться от написания тел JS-функций в определении колонок, ограничившись лишь указанием их имен. Чтобы свалки не было.) Апостроф работает только только при создании colModel. Dont worry about your data.) Другие особые ключи Если посмотрите в код, сможете обнаружить другие особые ключи: default, null, replace, search_op и т.д. В данный момент их не следует использовать. Пользуйтесь перегрузкой parseRow.
  3. Рендеринг грида В шаблоне tpl грид создается следующим образом (на примере jq_return): <script> {$jq_loader->render('jq_return')} {literal} autowidth: true, height: 430, rowNum: 50, caption: 'Возврат средств', scroll: 1, gridComplete: function(){ gridHighlight('#jq_return'); } }); $grid.jqGrid('navGrid', pager,{add: false, edit: false, del: true, deltext:'Удалить', refresh:true, refreshtext: 'Обновить', search:false}); Объект $jq_loader - это "фабрика" гридов. Она всегда присутствует в темплейтах. Метод render подгружает класс грида из текущей секции (?section=xxx) с именем, указанным в аргументе, и рендерит необходимый HTML-код и "верхушку" JS-объекта. В нее входит: colModel colNames pager url editurl cellurl Это то, что можно сгенерировать автоматически. Также определяются переменные: $grid - объект jQuery с последним созданным гридом. Специально для любителей копи-пасты.) Если гридов несколько, то эту переменную можно использовать на этапе инициализации кнопочек и тулбаров, но нельзя использовать в событиях. Если грид один - можно использовать везде. $jq_return - переменная с именем, аналогичным id грида. Используется в тех случаях, когда гридов несколько. Не надо писать селекторы по сто раз! Пользуйтесь переменными. Несколько однотипных гридов Если грид один и тот же должен повторяться несколько раз на одном экране, следует использовать второй необязательный аргумент функции render - $suffix. Например: {$jq_loader->render('jq_cats', 1)} ... {$jq_loader->render('jq_cats', 2)} Будет создано два грида - $jq_cats1 и $jq_cats2. Но они будут работать с единым классом jq_cats.
  4. Всего для выдачи результата необходимо минимум два запроса к БД: Count-запрос. Здесь же считаются суммы для колонок, у которых 'sum' => true. Основной запрос. В основном SELECT-запросе ($this->query) используется два placeholder'а - {fields} и {where}. Подробнее: {fields} - собирается на основании $this->cols, ключа 'db'. В count-запросе подставляется 'count(*)'. {where} - собирается на основании $this->cols и данных из $this->request. Если поиск не осуществлялся, то подставляет 'true'. К основному запросу автоматом добавляются ORDER BY, LIMIT и OFFSET на основании входящих данных. В данный момент поддерживается только автоматический поиск с прямой передачей параметров в запросе. Это filterToolbar, это простой formSearch, это прямая передача параметров через serializeGridData или setPostDataItem. Поддержка других типов поиска появится тогда, когда в этом возникнет надобность. Указание операторов При поиске по датам и числам поддерживается указание префиксов-операторов. Например: >16 (больше 16) >=17 (больше-равно 17) <>15.02.2010 (не равно 15.02.2010) Прямо так и вводим в filterToolbar. Оператор по умолчанию - '=' (равенство). Строковые значения ищутся оператором ILIKE '%{val}%' Поиск "по умолчанию" Чтобы упростить жизнь, было сделано следующее. Все переменные дополнительные переменные (кроме section и act), которые использовались в момент создания грида, будут добавлены к нему в URL. Следовательно, будут влиять на поиск. Пример можно посмотреть в "Статистике внешних сервисов". Там передается &cat=X. Особый поиск Для сложных случаев возможно опускать {where} и вручную формировать условия, либо использовать комбинацию из {where} и своих условий. Живой пример: $transfer_id = isset($this->request['transfer_id']) ? intval($this->request['transfer_id']) : 0; $this->query = " SELECT {fields} FROM payment_bnd_order b JOIN payment_tbl_transfer pt ON (b.transfer_id=pt.id) JOIN tbl_order o ON (b.order_id=o.id) JOIN tbl_order_payment p ON (b.order_id=p.order_id AND pt.payment_type=p.payment_type) JOIN lst_payment_types lp ON (p.payment_type=lp.id) LEFT JOIN ( SELECT order_id, sum(sum) as sum_prev FROM payment_bnd_order WHERE transfer_id != $transfer_id GROUP BY order_id ) s ON (b.order_id = s.order_id) WHERE b.transfer_id=$transfer_id AND {where} "; Работа с диапазонами дат См. refstat/jq_refstat.php
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.