Может ли разумный человек,
учитывая опыт прошедших веков,
питать хоть малейшую надежду на светлое будущее человечества?
Может, если свяжется с мной!
Как мы все знаем, при вставке ролика с ютуба штатной опцией "поделиться" - вставляется ифрейм, который сразу же тащит за собой 2-3 метра всякого хламного кода. На одном из проектов, когда количество роликов на странице выросло овер 20 - вес страницы стал под 60 метров, выбесило. Начал искать варианты решения и везде свои костыли и неудобства.
Потому презентую свой велосипед (идею спёр уже не помню где ну и модифицировал под себя) в виде десяти строк кода, который в принципе прекрасно работает и вес страницы с 38 роликами ютуба теперь 4 метра вместо 80 (на самом деле нет, но об этом позже).
Что в результате - по умолчанию у нас будет грузиться только превьюшка ролика с ютуба и лишь по клику подставляем в этот блок оригинальный ифрейм с интерфейсом. Логично видим, что ютубовский код грузится только по запросу посетителя, а не по умолчанию в безумном размере. Кнопку ютуба мы эмулируем через псевдоэлементы - в моем случае я использовал иконку FontAwesome - можете поставить свою картинку да и вообще это уже мелочи. Ведь даже с одним роликом на странице не факт, что клиент его просмотрит, но мы уже ему загрузили лишние 2 метра скриптов.
В движке версии 3 можно создавать произвольные поля профиля пользователя, чтобы заполнялись при регистрации и в личном кабинете.
Дальше пользователи создают свои статьи и нам надо в материале показать эту информацию автора материала.
templates\шаблон\html\com_content\article\default.php добавляем
1 23 4 | $user = JFactory::getUser($this->item->created_by); JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');$customFields = FieldsHelper::getFields('com_users.user', $user, true); echo $customFields[0]->value; |
Обращение к полям профиля идет по по id элемента массива в порядке их расположения, можно сделать var_dump чтобы понять структуру
(Надо закончить предложения, введя в input правильное слово в правильной форме) 1. I didn’t have much |форма для ввода| – just two small bags. Форма ввода просто должна сравнить то, что ввели юзеры с правильными ответами, если юзер ввел правильно, ему в переменную var добавилось столько-то баллов, по итогам проверки, результаты вывелись в div, "вы набрали var баллов из 100" чтобы нужные соответствия были в переменных перед началом кода?
Пытался его убедить, что тут нужна сервера обработка, иначе любой школьник может посмотреть на уровне браузера клиента правильные ответы и в консоли набить себе любые баллы
Потому набросал подобный скрипт, в браузере без перезагрузки проверяющий результаты введенных в форму данных по заранее определенному массиву правильных ответов https://jsfiddle.net/4n8f1jh1/На всякий случай код под катом
Давно нужен был подобный функционал, но Сергей занят и обновлений компонента пока не предвидится.
На коленке набросал хардкодное решение для версии комментариев 3.0.5 и Joomla 3.5.хх. Работает в ситуации с отсутствием авторизации на фронте и одного админа в панели, который будет отвечать на комментарии. Ковыряться в стандартных классах jcomments мне было лениво, потому отдельным скриптом без всяких проверок и тд, ведь работает умный админ.
Скачать плагин Content Article Image v3.0.1 для версий Joomla 2.5 и Joomla 3.x
Задача - на сайте получить список пользователей и возможность посмотреть созданные ими статьи (если, конечно, такой функционал на сайте предусмотрен).
Дополнительно этот же функционал будет показывать на специальной страницы материалы пользователя после его авторизации на фронте.
Действовать будем штатными средствами с некоторыми модификациями
После 10 лет нескончаемого секса с WordPress мигрировал наконец-таки на родную Joomla последней версии, в связи с чем всех и поздравляю!
Функционал остался почти прежним, изменение внешнего вида повлекло за собой написание адаптивной верстки, потому если найдутся баги - с удовольствием приму их в комментариях.
Миграция контента с WP выявила несколько интересных вещей, следовательно в ближайшее время будет пост про миграцию контента и самое главное комментариев из WP на Joomla 3.x и JComment 3.0.5, поскольку подобной информации в готовом виде в сети не нашел.
Задача - у материала есть дополнительное поле с валютой (decimal) куда вносится цена товара в евро, в карточке товара (полном тексте материала) нужно отображать значение по текущему курсу центробанка. Для этого делаем нужный нам функционал, через функцию, подключаемую на уровне шаблона материала
Для этого нужно создать отдельное скрытое меню (не публикуемое на сайте), там создавать ссылку на каждый материал блога и в общем гемор
Чтобы этого избежать - набросал пока простой плагин для версии 2.5.ХЧто мы получаем - в режиме блога адрес страницы домен/категория/подкатегория И при входе в материал получаем домен/алиас_материала Все это создается автоматически при сохранении материала для указанных категорий
Кому интересно потестить или предложить свои мысли (надо это или нет тоже учитывается ))) - прошу качать, версия пока только для Joomla 2.5
Версия плагина 2.1.0 itemtomenu.2.1.0.zip
Версия старого плагина, позволяющего скрывать часть текста в материале от незарегистрированных пользователей.
P.S. Старая версия для Joomla 2.5
Обновления:
- версия 3.1 - исправлены незначительные ошибки, вызывающие warning
У нас в таблице контента есть свое поле, в моем случае это тип недвижимости: продажа\аренда Деление по категориям мне не подходит по определенным причинам. Значит при создании ссылки в меню на блог материалов категории я хочу выводить отдельно ссылками продажу и аренду, хотя находятся все объекты в одной категории
1 23 45 | <field name="p_type" type="list" label="Тип объекта" description="Выберите тип объекта" default="0"> <option value="">--</option> <option value="0">Продажа квартир</option> <option value="1">Аренда квартир</option> </field> |
1 23 45 67 | <fields name="params"> <fieldset name="basic" label="JGLOBAL_CATEGORY_OPTIONS"> <field name="p_type" type="list" label="Тип объекта" description=""> <option value="">--</option> <option value="0">Продажа квартир</option> <option value="1">Аренда квартир</option> </field> |
1 23 4 | // filter by myfield if ($params->get('p_type') != '') { $query->where('a.p_type = '.$params->get('p_type').' '); } |
А на фронте в блоге категории будут показываться те материалы, у которых указан данный параметр. Если не указано ничего, соответственно where не работает и показываются все, согласно прочим стандартным настройкам
Допустим мы добавили в таблицу #__content новое поле, к примеру с ценой (price), создали отдельный шаблон вывода материалов в режиме блога templates/шаблон/html/com_content/category.catalog.xml, там же у нас уже есть отображение цены в описании материала режима блог шаблона каталога templates/шаблон/html/com_content/category/catalog_item.php и теперь осталось только сортировать по цене при создании пункта меню
Для этого идем в файл templates/шаблон/html/com_content/category.catalog.xml и примерно с строки 202 делаем так (можно и в языковые файлы вынести)
1 23 45 67 89 1011 1213 1415 1617 18 | <field name="orderby_sec" type="list" description="JGLOBAL_ARTICLE_ORDER_DESC" label="JGLOBAL_ARTICLE_ORDER_LABEL" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="aprice">Цена по возрастанию</option> <option value="raprice">Цена по убыванию</option> <option value="front">COM_CONTENT_FEATURED_ORDER</option> <option value="rdate">JGLOBAL_MOST_RECENT_FIRST</option> <option value="date">JGLOBAL_OLDEST_FIRST</option> <option value="alpha">JGLOBAL_TITLE_ALPHABETICAL</option> <option value="ralpha">JGLOBAL_TITLE_REVERSE_ALPHABETICAL</option> <option value="author">JGLOBAL_AUTHOR_ALPHABETICAL</option> <option value="rauthor">JGLOBAL_AUTHOR_REVERSE_ALPHABETICAL</option> <option value="hits">JGLOBAL_MOST_HITS</option> <option value="rhits">JGLOBAL_LEAST_HITS</option> <option value="order">JGLOBAL_ORDERING</option> </field> |
Далее нам нужен файл \components\com_content\helpers\query.php находим функцию orderbySecondary (строка 63) и добавляем кейсы
1 23 45 67 | case 'aprice' : $orderby = 'a.price';break; case 'raprice' : $orderby = 'a.price DESC';break; |
Если нам нужно добавить не только сортировку, но и фильтрацию по значению этого поля при создании ссылки в меню типа блог то можно почитать вот здесь Добавляем параметр фильтрации материалов в меню
Что получим на выходе - минималистичный сайт без привязок модулей к разным страницам и прочих "сложных" элементов, эдакий сайт визитка на полном ajax с использованием Jquery и History API (то есть в браузере кнопочки вперед\назад будут работать в полноценном режиме)
Сразу для разжигания интереса ссылка на рабочий результат1 | $query->select('a.id,'.$case_when.','.$case_when1); |
1 | $query->select('a.id, a.title, '.$case_when.','.$case_when1); |
1 23 45 67 89 1011 1213 | if ($row->prev) { $prev_title = '« '.$row->prev->title; $row->prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->prev->slug, $row->prev->catslug)); } else { $row->prev = ''; } if ($row->next) { $next_title = $row->next->title.' »'; $row->next = JRoute::_(ContentHelperRoute::getArticleRoute($row->next->slug, $row->next->catslug));} else { $row->next = '';} |
1 23 45 67 89 1011 1213 14 | if ($row->prev) { $html .= ' <li class="pagenav-prev"> <a href="'. $row->prev .'" rel="prev">'.$prev_title.'</a> </li>' ;} if ($row->next) { $html .= ' <li class="pagenav-next"> <a href="'. $row->next .'" rel="next">'.$next_title.'</a> </li>' ; } |
Скачать плагин Content Article Image v3.0.1 для версий Joomla 2.5 и Joomla 3.x
Скачать плагин Content Article Image v2.5.1 только для версии Joomla 2.5
Необходимо указать картинку "Изображение полного текста материала" в вкладке "Изображения и ссылки" при редактировании материала.
После сохранения материала превью сохранится в каталоге images/article_thumbs с суффиксом _thumb и пропишется в поле "Изображение для вступительного текста материала".
Откомменченное
Плагин Hide Guest Content - скрытие контента от гостей - !Joomla 3.x с группами пользователей
Aleks 28.02.2020Плагин Hide Guest Content - скрытие контента от гостей - !Joomla 3.x с группами пользователей
Beliyadm 28.02.2020Плагин Hide Guest Content - скрытие контента от гостей - !Joomla 3.x с группами пользователей
Beliyadm 28.02.2020Плагин Hide Guest Content - скрытие контента от гостей - !Joomla 3.x с группами пользователей
Aleks 28.02.2020Jcomments Ответы на комментарии из админки
travel2change.ru 24.05.2019