Новая версия Livestreet на базе Laravel

Уважаемые разработчики,
Готов платьить до 1000$ за новую версию движка. Это просто ад и треш, что мы используем на данный момент.
Ни Alto CMS, ни Лайвстрит жизнеспособны. Согласимся, что проекты уже мертвы. Пусть кто-нибудь перенесет все это на нормальный фреймворк. На Laravel, если считатете нужным.

Вебмастеры и владельцы сайтов,
Давайте вы тоже сделайте, что от вас зависит. У всех нас дохлая система, которая не работает нормально. Будьте активны, пожалуйста.

Обзор азартного клуба: вход в казино Плей Амо онлайн

В Российской Федерации много людей не охотно играют в казино в городе. Несомненно по этой причине онлайн-казино сегодня в большом тренде. Вы можете играть в онлайн-казино Плей Амо на денежные средства и интересно проводить досуг. Большое количество парней в наши дни играют в азартные игры на цифровую валюту. В online casino Плей Амо большое количество украинцев, русских, белорусов. Достаточно много молодых людей из Германии заходит на портал с целью поиска интересных игровых автоматов, и они находят их. Вы можете вести игру в разные новые игры, пользоваться бонусами, моментально выводить деньги.

На ресурсе Плей Амо вы можете играть в игровые автоматы от ELK, Nyx, NetEnt, Microgaming. В тренде в 2020 году стал американский покер. Кое-какие дамы с удовольствием проводят по 10-12 часов в русской рулетке. Некоторых предпринимателей Плей Амо просто засасывает. Вы можете вести игру в online casino полностью легально. У вас есть шанс с online casino выиграть внушительные деньги. Вы можете проводить время в азартном клубе Плей Амо и не переживать касаемо безопасности. В online casino приветствуются игроки с разным опытом. Выиграть денежные средства с применением бонусов новым игрокам не составляет особой трудности. Квалифицированные ребята в online casino Плей Амо – регулярные гости. Разные акции и современные специальные предложения для игроков всегда придумывает игорный сервис Плей Амо. Вы можете заходить и проводить круто выходные, как показывает практика, много мужчин на ресурсе в возрасте от 24 до 36 лет.

Если вы хотите играть в современные игры, это легко. На ресурсе доступны: Maaax Diamonds, Disc of Athena, Magic Forest, Power Plant, Wild Dolphins и другие слоты. Сейчас на сайте собираются ребята, которые предпочитают вести игру на внушительные суммы. Хотя, игровой клуб предлагает всем без исключения посетителям играть на сумму от 1000 рублей. На портале нет лимитов по выводу. Вы можете вывести как 1000 рублей, так и 10.000 рублей. Пользователи снимают деньги через PayPal, Visa, MasterCard, Skrill, Online UberWeisen, Qiwi.

На веб-сайте вы можете подобрать 7 самых лучших слотов. Также ребятам предлагается возможность вести игру в Video Poker, Blackjack, Roulette. Многие толковые парни и девушки играют в настольные карточные игры, они привлекают многих после 30 лет. Если вы раньше не играли в онлайн-казино с мобильных девайсов – самое время попробовать. Вы можете вести игру в разные видео слоты с Android или iOs девайсов. На веб-сайте всегда есть администраторы в онлайн-чате, которые при сложностях смогут оказать помощь в любом вопросе.

Не могу войти в админку

Проблема — домен был месяц отключен по объективным причинам. Вхожу под старым логином и паролем — не пускает. Пробовал через phpMyAdmin поменять хешем — никаких рузельтатов. Как быть, всемогущий All? До админки не достучаться(

PHPFOX 1.6.21

Кстати, а почему люди забили на phpfox 1.6.21. Ведь реально крутой скрипт, даже для 2020. В нем всё есть, и не похож на вконтакт или фейсбук(как сеичас все скрипты равняютса под них, обидно).

Я вот себе сейчас поставил его для тестов и всё в нём работает и очень даже быстро.

Чиним Пост-Опрос, Пост-Фотосет и Пост-Ссылка

Как вы уже заметили на 1.0.3 не работают «Пост-Опрос, Пост-Фотосет и Пост-Ссылка»

Чиним так. В файле: /classes/modules/topic/entity/Topic.entity.class.php

Заменить функции на вот эти:(Извеняйте, что не описал что именно менять, тут лимит стоит 15000. Но там всё идёт по порядку. Найдите начало и конец, и замените на этот код)
/**
     * Извлекает сериализованные данные топика
     */
    protected function extractExtra() {

        if (null === $this->aExtra) {
            $aData = @unserialize($this->getExtra());
            if (is_array($aData)) {
                $this->aExtra = $aData;
            }
        }
    }

    /**
     * Устанавливает значение нужного параметра
     *
     * @param string $sName    Название параметра/данных
     * @param mixed  $data     Данные
     */
    protected function setExtraValue($sName, $data) {

        $this->extractExtra();
        $this->aExtra[$sName] = $data;
        $this->setExtra($this->aExtra);
    }

    /**
     * Извлекает значение параметра
     *
     * @param string $sName    Название параметра
     *
     * @return null|mixed
     */
    protected function getExtraValue($sName) {

        $this->extractExtra();
        if (isset($this->aExtra[$sName])) {
            return $this->aExtra[$sName];
        }
        return null;
    }

    /* *** ******************** *** */
    /* *** SOURCE LINK OF TOPIC *** */

    /**
     * Returns URL of topic's source link
     *
     * @param bool $bShort    Shorten URL
     *
     * @return null|string
     */
    public function getSourceLink($bShort = false) {

        if ($sUrl = $this->getExtraValue('url')) {
            if ($bShort) {
                $sUrl = htmlspecialchars($sUrl);
                if (preg_match('/^https?:\/\/(.*)$/i', $sUrl, $aMatch)) {
                    $sUrl = $aMatch[1];
                }
                $sUrlShort = substr($sUrl, 0, 30);
                if (strlen($sUrlShort) != strlen($sUrl)) {
                    return $sUrlShort . '...';
                }
                return $sUrl;
            } else {
                if (!preg_match('/^https?:\/\/(.*)$/i', $sUrl, $aMatch)) {
                    $sUrl = 'http://' . $sUrl;
                }
            }
            return $sUrl;
        }
        return null;
    }

    /**
     * Set URL of topic's source link
     *
     * @param string $data
     */
    public function setSourceLink($data) {

        $this->setExtraValue('url', strip_tags($data));
    }

    /**
     * Возвращает количество переходов по ссылке в топике-ссылке
     *
     * @return int
     */
    public function getSourceLinkCountJump() {

        return (int)$this->getExtraValue('count_jump');
    }

    /**
     * Устанавливает количество переходов по ссылке в топике-ссылке
     *
     * @param string $data
     */
    public function setSourceLinkCountJump($data) {

        $this->setExtraValue('count_jump', $data);
    }

    /* *** ********************** *** */
    /* *** QUESTIONNAIRE OF TOPIC *** */

    /**
     * Устанавливает вопрос
     *
     * @param string $data
     */
    public function setQuestionTitle($data) {

        $this->setExtraValue('question_title', $data);
    }

    /**
     * Возвращает вопрос, если вопрос не указан - заголовок топика
     *
     * @return int|null
     */
    public function getQuestionTitle() {

        if ($this->getExtraValue('question_title')) {
            return $this->getExtraValue('question_title');
        }
        return $this->getTitle();
    }

    /**
     * Добавляет вариант ответа в опросе топика
     *
     * @param string $data
     */
    public function addQuestionAnswer($data) {

        $this->extractExtra();
        $this->aExtra['answers'][] = array('text' => $data, 'count' => 0);
        $this->setExtra($this->aExtra);
    }

    /**
     * Очищает варианты ответа в опросе топика
     */
    public function clearQuestionAnswer() {

        $this->setExtraValue('answers', array());
    }

    /**
     * Возвращает варианты ответа в опросе топика
     *
     * @param bool $bSortVote
     *
     * @return array|null
     */
    public function getQuestionAnswers($bSortVote = false) {

        $aAnswers = $this->getExtraValue('answers');
        if ($aAnswers && $bSortVote) {
            uasort(
                $aAnswers, create_function(
                    '$a,$b',
                    "if (\$a['count'] == \$b['count']) { return 0; } return (\$a['count'] < \$b['count']) ? 1 : -1;"
                )
            );
        }
        return $aAnswers ? $aAnswers : array();
    }

    /**
     * Увеличивает количество ответов на данный вариант в опросе топика
     *
     * @param int $sIdAnswer  ID варианта ответа
     */
    public function increaseQuestionAnswerVote($sIdAnswer) {

        if ($aAnswers = $this->getQuestionAnswers()) {
            if (isset($aAnswers[$sIdAnswer])) {
                $aAnswers[$sIdAnswer]['count']++;
                $this->aExtra['answers'] = $aAnswers;
                $this->setExtra($this->aExtra);
            }
        }
    }

    /**
     * Возвращает максимально количество ответов на вариант в опросе топика
     *
     * @return int
     */
    public function getQuestionAnswerMax() {

        $aAnswers = $this->getQuestionAnswers();
        $iMax = 0;
        foreach ($aAnswers as $aAns) {
            if ($aAns['count'] > $iMax) {
                $iMax = $aAns['count'];
            }
        }
        return $iMax;
    }

    /**
     * Возвращает в процентах количество проголосовавших за конкретный вариант
     *
     * @param int $sIdAnswer ID варианта
     *
     * @return int|string
     */
    public function getQuestionAnswerPercent($sIdAnswer) {

        if ($aAnswers = $this->getQuestionAnswers()) {
            if (isset($aAnswers[$sIdAnswer])) {
                $iCountAll = $this->getQuestionCountVote() - $this->getQuestionCountVoteAbstain();
                if (!$iCountAll == 0) {
                    return number_format(round($aAnswers[$sIdAnswer]['count'] * 100 / $iCountAll, 1), 1, '.', '');
                }
            }
        }
        return 0;
    }

    /**
     * Возвращает общее число принявших участие в опросе в опросе топика
     *
     * @return int
     */
    public function getQuestionCountVote() {

        return (int)$this->getExtraValue('count_vote');
    }

    /**
     * Устанавливает общее число принявших участие в опросе в опросе топика
     *
     * @param int $data
     */
    public function setQuestionCountVote($data) {

        $this->setExtraValue('count_vote', $data);
    }

    /**
     * Возвращает число воздержавшихся от участия в опросе
     *
     * @return int
     */
    public function getQuestionCountVoteAbstain() {

        return (int)$this->getExtraValue('count_vote_abstain');
    }

    /**
     * Устанавливает число воздержавшихся от участия в опросе
     *
     * @param int $data
     *
     * @return mixed
     */
    public function setQuestionCountVoteAbstain($data) {

        $this->setExtraValue('count_vote_abstain', $data);
    }
/**
	 * Возвращает фотографии из топика-фотосета
	 *
	 * @param int|null $iFromId	ID с которого начинать  выборку
	 * @param int|null $iCount	Количество
	 * @return array
	 */
	public function getPhotosetPhotos($iFromId = null, $iCount = null) {
		return $this->Topic_getPhotosByTopicId($this->getId(), $iFromId, $iCount);
	}
	/**
	 * Возвращает количество фотографий в топике-фотосете
	 *
	 * @return int|null
	 */
	public function getPhotosetCount() {
		return $this->getExtraValue('count_photo');
	}
	/**
	 * Возвращает ID главной фото в топике-фотосете
	 *
	 * @return int|null
	 */
	public function getPhotosetMainPhotoId() {

        $oImage = $this->getPhotosetMainPhoto();
        if ($oImage) {
            return $oImage->getMresourceId();
        }

        return $this->getExtraValue('main_photo_id');
    }
	/**
	 * Устанавливает ID главной фото в топике-фотосете
	 *
	 * @param int $data
	 */
	public function setPhotosetMainPhotoId($iPhotoId) {

        $this->setExtraValue('main_photo_id', $iPhotoId);
        $this->setProp('_photoset_photos', null);
    }
	/**
	 * Устанавливает количество фотографий в топике-фотосете
	 *
	 * @param int $data
	 */
	public function setPhotosetCount($iCount) {

        $this->setExtraValue('count_photo', $iCount);
        $this->setProp('_photoset_photos', null);
    }

Не дадим 1.0.3 умереть!

Не работают некоторые inline onclick с новой версией jQuery (LS 1.0.3)

Обновил jQuery до версии 2.2.4 и перестали работать некоторые инлайновые onclick-и.

Например, кнопка загрузки изображения в топик (как я понял вызывается эта функция)

Или кнопка предпросмотра топика (вызов этой функции)

Может кто поможет «починить»?

Добавление подобного кода в .tpl не помогает:
<button class="js-topic-preview" name="submit_preview" type="button">{$aLang.topic_create_submit_preview}</button>

<script>
    $(document).on('click', '.js-topic-preview', function (e) {
        ls.topic.preview('form-topic-add', 'text_preview');
    });
</script>

Охрана труда и Промышленная безопасность на объектах ВИЭ

Несоблюдение сотрудниками правил безопасности и охраны труда на объектах ВИЭ чревато не меньшими последствиями, чем производственный травматизм на традиционном предприятии энергетического сектора. «Зеленая» энергетика – сегмент энергетической отрасли России, который только начинает развиваться, поэтому, на мой взгляд, ошибки персонала на данном и последующих этапах неизбежны.
Неосторожность сотрудников может стать причиной как финансового урона компании, так и перебоев с поставкой электроэнергии потребителю, кроме того, халатность может привести к несчастным случаям. Для предприятий, генерирующих электроэнергию на основе ВИЭ, существуют дополнительные правила безопасности. Например, сотрудники ветроэлектростанций (ВЭС) не имеют права подниматься на ветроэлектрическую установку (ВЭУ) для проведения ремонтных или профилактических работ без полного ее обесточивания.
А перед работой над потоком воды на гидроэлектростанциях (ГЭС) должен быть проведен комплекс мер, препятствующий падению человека в воду: оснащение личными средствами защиты, дежурство в лодке других специалистов, освещение водной поверхности на 30 метров выше и на 15 метров ниже места проведения работ.
Есть традиционные способы контроля соблюдения правил охраны труда: проведение опроса сотрудников, проверки аудитором, который инспектирует объект по предписанному маршруту и показателям, выявляя тем самым недостатки в сфере производственной безопасности. Помимо этого, для повышения степени безопасности сотрудников на объектах ВИЭ внедряются новые цифровые технологии. Они позволяют предупреждать о возникновении угроз жизни или здоровью специалистов. Например, система Smart LOTO (lockout / tagout), которая обеспечивает безопасность персонала, сокращение производственного травматизма и тем самым повышает эффективность производственных процессов. Цифровые решения используются не только для контроля соблюдения правил промышленной безопасности, но и для обучения им сотрудников, например с помощью виртуальной реальности. Обучающий курс позволяет работнику действовать в чрезвычайной ситуации, максимально приближенной к реальности, для усвоения алгоритма действий для ее устранения. Помимо этого, для обучения персонала стали использоваться мобильные приложения, которые вне зависимости от места нахождения работника позволяют посмотреть нужную информацию без подключения к сети Интернет, пройти пробное тестирование и выполнить работу над возможными ошибками. В приложении содержится вся необходимая сотруднику информация для подготовки и тестирования, а также функция удаленного контроля для руководителя.
Генеральный директор ООО «Интэк-Строй» Евланов Артем Евгеньевич

Что заменит нефть в будущем

Несколько лет назад доля альтернативного топлива в мире составляла около 2%, на сегодняшний день она выросла до 20%. Вместо нефти используют, например, биодизель – это экологически чистое топливо из животных жиров, соевого или растительного масла. Пример использования альтернативного горючего был продемонстрирован в 2019 году – биотопливо использовалось для заправки самолетов и доказало свою экологическую эффективность: выбросы двуокиси углерода стали меньше на 60%, чем при использовании традиционного топлива. Производство биодизеля в 2019 году выросло в Индонезии – до 7,4 млн тонн, в США – до 7,6 млн тонн, в Бразилии – до 5,1 млн. тонн

На изготовление топлива для транспортной отрасли идет 90% добываемой нефти, и здесь альтернативой «черному золоту» может стать сжиженный газ: он продлевает срок службы двигателя автомобиля и является одним из самых экологичных видов топлива. Еще один вариант замены — это водород: он дает больший запас хода, чем, например, электрические батареи электрокаров, а также выигрывает в скорости заправки.

Электричество тоже может составить конкуренцию бензину: в 2019 году в нашей стране количество проданных новых электрокаров увеличилось до 261, что на 2,8% превышает показатель прошлого года. Возможное введение дополнительных стимулов для владельцев электрокаров, таких как отмена транспортного налога, разрешение на движение по выделенным полосам для общественного транспорта и бесплатная парковка, будет способствовать развитию рынка электромобилей в России.

Если использовать в качестве альтернативы нефти, переработанные твердые бытовые отходы (ТБО), то можно решить сразу несколько важных и актуальных проблем, как экологических, так и экономических. Например, если сжигать в печах цементных заводов текстиль, древесину, кожу, полимеры, бумагу, автомобильные покрышки, то расходы на традиционные источники энергии, которые составляют около 60% итоговой стоимости готовой продукции, можно сократить минимум на треть.

Несмотря на то, что субсидирование разработок альтернативы нефти в странах ЕС за последние 10 лет увеличились до 76 млрд евро, полного отказа мировой экономики от «черного золота» в ближайшее время не предвидится. Прогнозируется уменьшение доли нефти в мировом энергобалансе до 30% к 2040 году, что приведет к повышению спроса на ресурс за этот период примерно на 10%.
Генеральный директор АО «Трансэнерком» Шевцов Олег Владимирович

API

День добрый. Есть такой плагин, живущий только на гитхабе, под названием API. Попытался использовать его и обнаружил, что лично у меня он выдаёт ответы в кодировке koi7, а хотелось бы utf-8. Подскажите, пожалуйста, может кто помнит где и что подкрутить.

Врачи МРМЦ рассказали о современных способах лечения болезней сердца

Среди основных причин смерти россиян на первом месте стоят болезни системы кровообращения. Сердечно-сосудистые заболевания делятся на шесть групп. В первую, вторую и третью группы входят болезни кровеносных сосудов. В четвертую группу входят болезни, поражающие сердечную мышцу, в пятую — тромбозы сосудов, при которых в крупных венах образуются сгустки крови, способные «закупорить» сосуд. И последняя, шестая группа — врожденные пороки сердца.

Наиболее эффективным способом лечения сердечно-сосудистых заболеваний остается хирургический метод.
Прежде, чем определять зону хирургического вмешательства, проводится диагностическая коронарография. Это — визуализация коронарных артерий с помощью введенных в кровоток рентгеноконтрастных препаратов. Данная процедура позволяет наиболее точно оценить состояние артерий, поэтому является точнейшим способом диагностики ишемической болезни сердца — самого распространенного сердечно-сосудистого заболевания.
Одним из методов лечения ишемической болезни сердца является стентирование коронарных артерий, в ходе которого врачи восстанавливают просвет суженных «изнутри» сосуда с использованием специальных стентов. Операция проходит под местным наркозом, все манипуляции врачи контролируют с помощью рентгена. При поражении сосудов, питающих кровью нижние конечности, проводится эндоваскулярное стентирование магистральных и периферических артерий. Оно помогает предупредить развитие ишемической гангрены.
Крымчанам важно помнить, что хирургическую помощь при сердечно-сосудистом заболевании, в том числе высокотехнологичную, можно получить бесплатно по полису ОМС.
Полностью медикаментозному лечению болезни системы кровообращения не поддаются, однако риск развития сердечно-сосудистых заболеваний можно значительно снизить, придерживаясь нескольких простых, но действенных правил.
Первое — минимизировать вредные привычки, в главную очередь курение. Второе — следить за массой тела, снизить употребление высококалорийной пищи и быстрых углеводов (сладостей, сдобы). Эти меры помогут оптимизировать нагрузку на миокрад.
Третье правило — соблюдение умеренной физической активности, и четвертое — постоянный контроль артериального давления, уровня глюкозы и холестерина в крови — это позволит вовремя заметить развитие болезни и обратиться к специалисту на ранней стадии развития недуга.