ReplyTo в компонентах Joomla после версии 3.5.1

Использую на своих сайтах замечательный компонент “RSForm! Pro”. И всё замечательно, только после каких-то апдейтов письма приходят без заголовка ReplyTo. Соответственно это приносит некоторые неудобства. Как выяснилось, в Joomla после версии 3.5.1 что-то поменялось в логике работы и многие компоненты, которые отправляли письма с этими заголовками продолжили работать, но уже не прикрепляя его. Как бы и ошибок нет, но в то же время ошибка где-то есть. В общем меня это порядком достало, ведь не обновление Joomla, не обновление “RSForm! Pro” ситуацию не исправляло. На официальном англоязычном форуме получилось найти решение. https://forum.joomla.org/viewtopic.php?p=3387190#p3387190 1 2 3 4 5 6 7 8 9 try { if(version_compare(JVERSION, '3.0', 'ge')) { $mailer->addReplyTo($replyTo, $replyToName); } else { $mailer->addReplyTo(array($replyTo, $replyToName)); } } catch (Exception $e) { // do exception handling and logging here } Если речь о “RSForm! Pro”, то я сделал следующие изменения: В файле /administrator/components/com_rsform/helpers/rsform.php, в строке 2945 делаем изменения 1 2 - $mail->addReplyTo(trim($replyto[$i]), isset($replytoname[$i]) ? trim($replytoname[$i]) : ''); + $mail->addReplyTo(array(trim($replyto[$i]), isset($replytoname[$i]) ? trim($replytoname[$i]) : '')); После внесённых изменений в письма стали добавляться требуемые заголовки, задача была решена. Обращаю ваше внимание что я не программист и возможно код работает не совсем корректно. Буду рад если вам эта заметка поможет.

20 лютого 2020 · 1 хвилина · 194 слів · dimetrius

Заметки по AcyMailling

You can modify your tag to order your articles by “hits”, so the most popular content will be displayed. This tag will display the introduction of the first 20 most popular articles: 1 {autocontent:sec0|max:20|order:hits,DESC|type:intro|link|pict:1}

11 грудня 2017 · 1 хвилина · 34 слів · dimetrius

Joomla 2.5-3.5 решение проблемы с циклической переадресацией при включении SSL(https)

В связи со скорым выходом 56 версии Chrome, которая будет показывать уведомление ‘Not Secure’ при посещении сайтов без SSL, я постепенно перевожу все свои сайты на использование HTTPS. Сайты на Joomla конечно же тоже есть в этом списке. Поскольку у меня сайты работают не на одном сервере, не на одном apache, а на целой связке серверов, то возникают некоторые сложности с настройкой HTTPS подключения и корректной работой некоторых скриптов. В моём случае если ничего не включать в настройках Joomla и заходить на неё по https, то картинки, css, js грузились по http, что не допустимо. В интернете почти всюду встречается рецепт: Включаем принудительно SSL в настройках Joomla. Получаем циклическую переадресацию ‘too many redirects’. Редактируем /libraries/joomla/environment/uri.php (в версии 3.5 /libraries/joomla/uri/uri.php) Заменяем 1 2 3 4 5 6 7 8 if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) { $https = 's://'; } else { $https = '://'; } на 1 2 3 4 5 6 7 8 if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) { $https = 's://'; } else { $https = 's://'; } тем самым делая условие абсолютно бесполезным. В этом случае сайт больше не сможет работать по HTTP, не используя HTTPS. Вся эта ситуация вырисовывается от не верных настроек вэб сервера, в моём случае серверов. Бэкэнд всё так же думает что используется HTTP соединение, php соответственно тоже, ссылки строятся без учёта HTTPS. ...

23 травня 2016 · 3 хвилин · 429 слів · dimetrius

Плагин Sphinx Search для Joomla 2.5 и UTF-8

Sphinx - это поисковая система, позволяющая быстро индексировать таблицы баз данных и производить полнотекстовый поиск по ним. В основе работы системы лежит принцип индексации базы альтернативным приложением. Приложение Sphinx устанавливается в систему. Все настройки для него прописываются в конфигурационном файле sphinx.conf, в числе которых присутствуют параметры соединения с базой данных, запросы к таблицам для индексирования, каталоги для хранения индексов и прочее. Полную документацию для настройки sphinx.conf можно найти здесь. После установки вы получаете пять плагинов для поиска по различным компонентам Joomla и компонент административной части для настройки. Активировав поисковые плагины Sphinx, можно деактивировать стандартный поиск Joomla. Для успешной индексации русскоязычных баз данных пришлось немного изменить конфиг sphinx. Пример можете посмотреть ниже. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 # # site parent source site-parent { type = mysql sql_host = localhost sql_user = dbuser sql_pass = dbpass sql_db = dbname sql_port = 3306 sql_query_pre = SET NAMES 'utf8' sql_query_pre = SET SESSION query_cache_type=OFF } # # Joomla articles # source joomla_articles : site-parent { #only published and Public articles are indexed sql_query = \ SELECT `id`, `title`, `introtext`, `fulltext`, `metakey`, `metadesc`, \ UNIX_TIMESTAMP(`created`) as created, `hits`, `catid` \ FROM nz6ol_content \ WHERE state = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_timestamp = created } index joomla_articles { source = joomla_articles path = /var/www/site.com/sphinx/data/articles morphology = stem_enru, soundex, metaphone charset_type = utf-8 charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF enable_star = 1 expand_keywords = 1 index_exact_words = 1 min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla web links # source joomla_weblinks : site-parent { #only published links are indexed sql_query = \ SELECT `id`, `catid`, `title`, `description`, UNIX_TIMESTAMP(`created`) as created, `hits` \ FROM nz6ol_weblinks \ WHERE state = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_timestamp = created } index joomla_weblinks { source = joomla_weblinks path = /var/www/site.com/sphinx/data/weblinks morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla contacts # source joomla_contacts : site-parent { sql_query = \ SELECT `id`, `catid`, `name` as title, `con_position`, `address`, `state`,\ `country`, `postcode`, `telephone`, `misc`, `email_to`, id as modified, 0 as`hits`, id as created \ FROM nz6ol_contact_details \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_contacts { source = joomla_contacts path = /var/www/site.com/sphinx/data/contacts morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla categories # source joomla_categories : site-parent { #only published links are indexed sql_query = \ SELECT `id`, id as `catid`, `title`, `description`, 0 as `hits`, 0 as `created`\ FROM nz6ol_categories \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_categories { source = joomla_categories path = /var/www/site.com/sphinx/data/categories morphology = stem_enru, soundex, metaphone charset_type = utf-8 charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF enable_star = 1 expand_keywords = 1 index_exact_words = 1 min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla newsfeeds # source joomla_newsfeeds : site-parent { sql_query = \ SELECT `id`, `catid`, link, name as title, numarticles as `hits`, 0 as `created`\ FROM nz6ol_newsfeeds \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_newsfeeds { source = joomla_newsfeeds path = /var/www/site.com/sphinx/data/newsfeeds morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } index joomla_search { type = distributed local = joomla_articles local = joomla_weblinks local = joomla_contacts local = joomla_newsfeeds } indexer { mem_limit = 512M } searchd { compat_sphinxql_magics = 0 listen = localhost:9312 log = /var/log/sphinx/searchd.log query_log = /var/log/sphinx/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid max_matches = 50000 binlog_path = /var/run/sphinxsearch/ } Обратите внимание на параметры: ...

28 вересня 2015 · 7 хвилин · 1403 слів · dimetrius

Модуль внутри материала Joomla

В том месте, где Вы хотите, чтобы отображался Ваш модуль прописываете следующий код: { loadposition user9 } (это если Вы назвали позицию user9, если же назвали как-то по своему, то пишете свое название позиции) Важно!! Когда будете прописывать этот код у себя, обязательно сдвиньте фигурные скобки, чтобы не было пробелов! Данный способ для вставки модуля в материал идентичен для всех версий Joomla!

26 червня 2014 · 1 хвилина · 62 слів · dimetrius

Очистка материалов в корзине Joomla

Так уж сложилось что на одном из моих сайтов очень много новостей приходят автоматически с помощью RSS грабера. Позже эти новости публикуются, удаляются… в общем обычная работа перед публикацией. Вышло так что таблица content стала весить более 50 Мбайт, это более 7000 материалов. Реально же опубликовано куда меньше, остальное всё тупо в базе лежит и почему-то меня напрягает… Захотелось удалить это счастье под названием “Корзина”. Но через стандартный интерфейс удалять столько материалов просто не реально нудно. Выручил phpmyadmin… Зашёл в таблицу content, нашёл материалы со state = -2 и давай их удалять ))) Пара минут и я счастливый обладатель почти пустой БД, которая весит уже чуть более 12 Мбайт, вместо 50 Мбайт! Все работы проводились на Joomla 2.5.14, если повторяете, то делаете это на свой страх и риск! phpmyadmin

30 вересня 2013 · 1 хвилина · 129 слів · dimetrius

Переключение шаблона Joomla на основе домена

Многие сайты в наше время используют поддомены для того чтоб отдавать контент для мобильных устройств. Я лично предпочитаю чтоб клиент сам выбирал какой версией сайта пользоваться, стандартной, или мобильной, чтоб это было как опция, а не неким волшебством, от которого потом невозможно избавиться. Joomla имеет несколько тяжёлых плагинов и компонентов, которые делают переключения шаблона (и многое другое), а также несколько коммерческих решений, чтоб справиться с задачей переключения шаблонов. Наше решение довольно простое, но придётся редактировать код основных файлов Joomla. Это всего пару строк кода… Откройте ./includes/application.php и вставьте следующий код в строке 474 (для Joomla 1.7.3 - для других версий, вставить непосредственно перед строкой ‘// Fallback template’): 1 2 3 4 // Проверка мобильного шаблона if ($_SERVER['HTTP_HOST']=="ЗДЕСЬ_МОБИЛЬНЫЙ_ДОМЕН") { $template->template = 'ЗДЕСЬ_НАЗВАНИЕ_МОБИЛЬНОГО_ШАБЛОНА'; } После этих действий Joomla будет отображать мобильный шаблон, когда посетитель будет заходить на сайт с домена для мобильных. Используемые материалы: Switching Joomla template based on domain Скачать plg_juvirtualdomain_v3.2.1.zip

18 липня 2013 · 1 хвилина · 150 слів · dimetrius

External Links - внешние ссылки в новом окне и с рекламой

После перевода одного из своих проектов на joomla 2.5, начал искать плагин для экранировки внешних ссылок от поисковиков через noindex и nofollow. Оказалось это не так уж и просто. Первый плагин, который мне понравился в этом плане, это External Links. Он позволяет экранировать ссылку через nofollow и добавлять _blank. Что понравилось: открывает внешние ссылки в iframe, а вверху добавляет некую рамку с нашим контентом. туда можно добавить свою рекламу, что я и сделал. Что не понравилось: не все ссылки обрабатывались почему-то, не добавлялся атрибут noindex. Если вы хотите чтоб внешняя ссылка не обрабатывалась плагином, то добавьте ‘no_link=1’, например: 1 2 http://www.example.com?no_link=1, или http://www.example.com?p1=v1&no_link=1 Совместимость с версиями Joomla 1.5, 1.6, 1.7, 2.5 Папку GO необходимо разместить в корне сайта. Сайт автора Скачать go.zip Скачать pgl_external_links.zip

15 березня 2012 · 1 хвилина · 124 слів · dimetrius

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 40 bytes) in /libraries/joomla/error/exception.php on line 117

Ещё одно замечательное открытие для себя сделал и приобрёл драгоценный опыт. Начну с того, что при установке в панели управления хостингом было выбрано использовать Mod-PHP. Установлена Joomla 1.5.23, в настройках выбрал использовать xcache для кэша и для сессий. Всё работало, пока мне не захотелось более лёгкого разруливания прав доступа на файлы. Для этого в админке хостинга выбрал вместо Mod-PHP, Fast-CGI. По идее всё должно и дальше работать, но нет, я увидел заветные строки: 1 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 40 bytes) in /libraries/joomla/error/exception.php on line 117 Полтора дня искал решение, а всё было очень просто. В режиме Fast-CGI для скрипта недоступен xcache, а в настройках то он был выбран. Исправить можно двумя способами, или снова переключиться на Mod-PHP и выключить использование xcache, или же в конфигах самому прописать что использовать. Ниже “безпроблемный” вариант. 1 2 var $cache_handler = 'file'; var $session_handler = 'database'; Если же и в этом варианте возникает та же проблема, то почините свою БД, особенно сессии.

23 квітня 2011 · 1 хвилина · 166 слів · dimetrius

XMAP - Ошибка синтаксического анализа XML: незакрытый маркер

В очередной раз установив Joomla, натянув на неё Xmap, попытался посмотреть XML карту сайта. Прямо из компонента попытался открыть ссылку example.com/index.php?option=com_xmap&sitemap=1&view=xml. Но вместо карты сайта увидел примерно следующий текст: 1 2 3 4 5 Ошибка синтаксического анализа XML: незакрытый маркер Адрес: http://example.com/index2.php?option=com_xmap&view=xslfile&tmpl=component Строка 269, символ 1: ^ Почти два дня провозился с этой проблемой, понял что откуда-то должны ещё подгружаться стили, но откуда не мог понять. Да собственно до сих пор толком не понял как они подгружаются, но это происходит Для того чтоб посмотреть подгружается ли стиль для XML карты сайта, можно попробовать перейти по ссылке: example.com/index2.php?option=com_xmap&view=xsladminfile&tmpl=component Если получаете ответ: 1 2 3 4 5 Ошибка синтаксического анализа XML: незакрытый маркер Адрес: http://example.com/index2.php?option=com_xmap&view=xsladminfile&tmpl=component Строка 383, символ 1: ^ то мы разговариваем как раз о таком случае. Для исправления сложившейся ситуации достаточно открыть в нормальном редакторе, например Notepad++ файлы: /html/components/com_xmap/gss.xsl /html/components/com_xmap/gssadmin.xsl и сделать так, чтоб внизу каждого файла была не одна свободная строка, а три. т.е. примерно вот так: 1 2 3 4 </body> </html> </xsl:template> </xsl:stylesheet> И волшебным образом проблема устраняется Из-за чего происходит такое я так и не смог разобраться, смог только обойти. Вероятно что-то в настройках сервера, но рядом, на этом же сервере, с такими же настройками стоит ещё один сайт, на нём всё замечательно работает без всяких вмешательств. ...

16 квітня 2011 · 2 хвилин · 239 слів · dimetrius