Fox Contact Form 3.3 - Эта музыка будет вечной

Кому лень читать - сразу мотаем вниз и скачиваем нужное.

Почему я это сделал или отмазка: какое то время назад я честно за десять кровных еврасов приобрел Fox Contact Form 3.1.3 - нормально он работал, радовал глаз. Понадобился снова, для нового проекта и при попытке установить на Жумлу  он мне показал:

FC01

Вот здорово, подумал я, это что теперь его покупать с каждым обновлением Жумлы? Т.е. меня будут напаривать на десятку каждый раз? Не, я лучше пожадничаю. Быстренько открыл архив с компонентом и в файле foxinstall.php на 50-строке обнаружил конструкцию:

public function preflight($type, $parent)
    {
        $jversion = new JVersion();
        $jmin = (string)$parent->get("manifest")->attributes()->{"version"};
        $jmax = (string)$parent->get("manifest")->{"version"};
        if (version_compare($jversion->RELEASE, $jmin, "<") || version_compare($jversion->RELEASE, $jmax, ">"))
        {
            // Removes the build number
            $jmax = preg_replace('/\.[0-9]+$/', "", $jmax);
            JFactory::getApplication()->enqueueMessage("Fox Contact " . $jmax . " only works on Joomla " . $jmax . ". You need Fox Contact " . $jversion->RELEASE . " to work on Joomla " . $jversion->RELEASE . ".", "error");
            JFactory::getApplication()->redirect(JRoute::_('index.php?option=com_installer', false));
        }
        $this->component_name = $parent->get("element");
        $this->extension_name = substr($this->component_name, 4);
        $this->event = $type;
    }

Просто выдрал из нее кусок заключенный в скобки после if и все предсказуемо поставилось и стало успешно работать, т.е. Запрет на установку вызван не какими то несовсместимостями со старыми версиями, а тупо желанием срубить бабла:

FC02

Ага, сказал я себе, раз уж пиратить, то по полной, у Гугля спросил про Fox Contact 3.3, ну раз мне его навязывают! Нашел его и так же в нем нашел на той же 50-ой строке ту же проверку версии, которую так же откусил, но что то стало глючить, еще при установке не показало картинки, и перестало работать. Может я где накосячил, может еще чего, не стал разбираться. По другому, сказал я и пошел другим путем: проверяются две переменные jmax и jmin, нужно просто им присвоить свои значения. Сказано - сделано! Был вот такой код:

if (version_compare($jversion->RELEASE, $jmin, "RELEASE, $jmax, ">"))

Стал вот такой:

if (version_compare($jversion->RELEASE, 1, "RELEASE, 10, ">"))

Т.о. теперь будет ставится от 1-ой до 10-ой версии Жумлы. Не уверен, что застану десятую и что будет работать на первой, на на некоторое время я освобожден от головной боли, чего и вам желаю:

FC03

Ну и в заключение исправленные компоненты, внутри, если захочется привести к девственному состоянию, есть файлы foxinstall_old.php, которыми нужно заменить foxinstall.php - и все станет как от производителя.

Fox Contact Form 3.1
Fox Contact Form 3.3

ЗЫ На буржуйских языках и буржуйских сайтах об этом не пишите, а то защиту сменит жадина и опять нужно будет тупить в код.