php ORM ActiveRecord

августа 20, 2014. автор: seoplayer

php ActiveRecord – библиотека позволяет упростить работу с базой данных. В основном имеет большое сходство с Doctrine, но работает намного шустрее, поэтому _возможно_ и функционал меньший.
Установка:

 

Создаем модель(в БД – это таблица):

 

Примеры использования:

 

 

Минимальные требования: php 5.3+.

Поддерживает: MySQL, SQLite, Postgresql, Oracle.

Официальный сайт

Метки:

phpMyAdmin вход без пароля

августа 20, 2014. автор: seoplayer

После установки(apt-get install phpmyadmin), по-умолчанию нельзя зайти без пароля. Зачастую подобная проблема на виртуальных машинах типа puphpet, где пароль на root пользователя не нужен. Решение довольно простое – открываем файл config.default.php обычно он лежит не в корне phpmyadmin(по-умолчанию он устанавливается в директорию /usr/share/phpmyadmin), а в папке libraries. Итого:

Открываем:

/usr/share/phpmyadmin/libraries/config.default.php

Заменяем:

$cfg['Servers'][$i]['AllowNoPassword'] = false;

на:

$cfg['Servers'][$i]['AllowNoPassword'] = true;

В большинстве случаев это помогает. Также лучше перезапустить веб-сервер(nginx, apache, lighthttpd).

Метки:

XenForo создание топика плагином

августа 19, 2014. автор: seoplayer

Намедни столкнулся с небольшой задачей – программно создать топик на движке XenForo. Собственно скрипт*:

//THREAD DATA
$authorID = 1;
$authorName = 'admin';
$subject = 'test'.time();
$messageText = 'test '.time().' off';
$forumId = 2;
 
//load libs
$fileDir = dirname(__FILE__);
 
require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
 
XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);
 
//create thread
$newThread = XenForo_DataWriter::create('XenForo_DataWriter_Discussion_Thread');
$newThread->set('user_id', $authorID);
$newThread->set('username', $authorName);
$newThread->set('title', $subject);
$newFirstPostInThread = $newThread->getFirstMessageDw();
$newFirstPostInThread->set('message', XenForo_Helper_String::autoLinkBbCode($messageText));
$newThread->set('node_id', $forumId);
$newThread->preSave();
 
if (!$newThread->hasErrors())
{
    $newThread->save();
    //get thread id
    $newThread->get('thread_id');
} else {
    //fix some error
}

* – Скрипт должен лежать в корне XenForo. При переносе в другую директорию, необходимо изменить директории подключаемых файлов.

Если что непонятно – прошу в комментарии.

В записи нет меток.