/** * Constructor method * * @param string $request * @return StatusController */ function __construct($request) { parent::__construct($request); if (!$this->logged_user->isAdministrator() && !$this->logged_user->getSystemPermission('can_use_incoming_mail_frontend')) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if $this->wireframe->addBreadCrumb(lang('Incoming Mail'), assemble_url('incoming_mail')); $this->wireframe->current_menu_item = 'incoming_mail'; require_once ANGIE_PATH . '/classes/UTF8Converter/init.php'; require_once ANGIE_PATH . '/classes/mailboxmanager/init.php'; use_model('incoming_mail_activity_logs', INCOMING_MAIL_MODULE); $this->active_mail = IncomingMails::findById($this->request->getId('mail_id')); if (!instance_of($this->active_mail, 'IncomingMail')) { $this->active_mail = new IncomingMail(); } else { $this->wireframe->addBreadCrumb($this->active_mail->getSubject(), $this->active_mail->getImportUrl()); } // if $this->wireframe->print_button = false; $this->smarty->assign(array('active_mail' => $this->active_mail)); }
<?php /** * Status module initialization file * * @package activeCollab.modules.status */ define('STATUS_MODULE', 'status'); define('STATUS_MODULE_PATH', APPLICATION_PATH . '/modules/status'); use_model('status_updates', STATUS_MODULE);
*/ // module basics define('SOURCE_MODULE', 'source'); define('SOURCE_MODULE_PATH', APPLICATION_PATH . '/modules/source'); // how many logs to get per async update request if (!defined(SOURCE_MODULE_LOGS_PER_REQUEST)) { define('SOURCE_MODULE_LOGS_PER_REQUEST', 20); } // if // load modules require_once SOURCE_MODULE_PATH . '/models/commits/Commit.class.php'; require_once SOURCE_MODULE_PATH . '/models/commits/Commits.class.php'; require_once SOURCE_MODULE_PATH . '/models/repositories/Repository.class.php'; require_once SOURCE_MODULE_PATH . '/models/repositories/Repositories.class.php'; use_model('commit_project_objects', SOURCE_MODULE); use_model('source_users', SOURCE_MODULE); set_for_autoload(array('RepositoryCreatedActivityLog' => SOURCE_MODULE_PATH . '/models/activity_logs/RepositoryCreatedActivityLog.class.php', 'RepositoryUpdateActivityLog' => SOURCE_MODULE_PATH . '/models/activity_logs/RepositoryUpdateActivityLog.class.php')); define('REPOSITORY_UPDATE_FREQUENTLY', 1); define('REPOSITORY_UPDATE_HOURLY', 2); define('REPOSITORY_UPDATE_DAILY', 3); // define('REPOSITORY_UPDATE_HOOK', 4); /** * List of update types * * @param null * @return array */ function source_module_update_types() { return array(REPOSITORY_UPDATE_FREQUENTLY => lang('Frequently'), REPOSITORY_UPDATE_HOURLY => lang('Hourly'), REPOSITORY_UPDATE_DAILY => lang('Daily')); }
<?php /** * This is a controller * This controller extends to the main controller * The main controller generates 3 power classes * -- The em method that is a EntityManager, this class have methods to work with the database * -- The Router method, that class works with the routing * -- And the view method that work's with the template Engine * * If you wanna give more power classes to all contollers just inject them in the /core/controller.php */ //include("/packages/moonlight/auth/models/users.php"); use_model("users"); class auth extends controller { /** * Index, this is the fuction that run when the page open in the base routing * @return [View] All the controller routing functions returns a view, a view is a template with need to know vars */ function login() { $email = $_POST['username']; $pass = $_POST['password']; if ($name != "" && $pass != "") { $users = $this->em->getRepository('user')->findBy(array('email' => $email)); $user = $users[0]; if ($user != "") { if ($user->checkPass($pass)) { $user->updateToken(); $user->saveDefs();
* @package activeCollab.modules.timetracking */ define('TIMETRACKING_MODULE', 'timetracking'); define('TIMETRACKING_MODULE_PATH', APPLICATION_PATH . '/modules/timetracking'); define('BILLABLE_FILTER_ALL', 'all'); define('BILLABLE_FILTER_BILLABLE', 'billable'); define('BILLABLE_FILTER_NOT_BILLABLE', 'not_billable'); define('BILLABLE_FILTER_BILLABLE_BILLED', 'billable_billed'); define('BILLABLE_FILTER_BILLABLE_NOT_BILLED', 'billable_not_billed'); define('BILLABLE_FILTER_PENDING_PAYMENT', 'pending_payment'); define('BILLABLE_STATUS_NOT_BILLABLE', 0); define('BILLABLE_STATUS_BILLABLE', 1); define('BILLABLE_STATUS_PENDING_PAYMENT', 2); define('BILLABLE_STATUS_BILLED', 3); require TIMETRACKING_MODULE_PATH . '/functions.php'; use_model('time_reports', TIMETRACKING_MODULE); set_for_autoload(array('TimeRecord' => TIMETRACKING_MODULE_PATH . '/models/timetracking/TimeRecord.class.php', 'TimeRecords' => TIMETRACKING_MODULE_PATH . '/models/timetracking/TimeRecords.class.php', 'TimeAddedActivityLog' => TIMETRACKING_MODULE_PATH . '/models/activity_logs/TimeAddedActivityLog.class.php')); /** * Return section URL * * @param Project $project * @param ProjectObject $object * @return string */ function timetracking_module_url($project, $object = null) { $params = array('project_id' => $project->getId()); if (instance_of($object, 'ProjectObject')) { $params['for'] = $object->getId(); } // if
define('PROJECT_PERMISSION_NONE', 0); define('PROJECT_PERMISSION_ACCESS', 1); define('PROJECT_PERMISSION_CREATE', 2); define('PROJECT_PERMISSION_MANAGE', 3); define('API_DISABLED', 0); define('API_READ_ONLY', 1); define('API_READ_WRITE', 2); define('PAGE_MESSAGE_INFO', 'info'); define('PAGE_MESSAGE_WARNING', 'warning'); define('PAGE_MESSAGE_ERROR', 'error'); define('PAGE_MESSAGE_PRIVATE', 'private'); define('PAGE_MESSAGE_TRASHED', 'trashed'); define('OBJECT_SOURCE_WEB', 'web'); // first aid statuses define('FIRST_AID_STATUS_OK', '0'); define('FIRST_AID_STATUS_WARNING', '1'); define('FIRST_AID_STATUS_ERROR', '2'); define('SCHEDULED_TASK_FREQUENTLY', 'frequently'); define('SCHEDULED_TASK_HOURLY', 'hourly'); define('SCHEDULED_TASK_DAILY', 'daily'); // --------------------------------------------------- // Load // --------------------------------------------------- require_once SYSTEM_MODULE_PATH . '/models/ApplicationObject.class.php'; use_model(array('modules', 'users', 'companies', 'roles', 'config_options', 'languages', 'email_templates', 'project_groups', 'projects', 'activity_logs', 'project_objects', 'project_users'), SYSTEM_MODULE); require_once SYSTEM_MODULE_PATH . '/models/Wireframe.class.php'; require_once SYSTEM_MODULE_PATH . '/models/UserConfigOptions.class.php'; require_once SYSTEM_MODULE_PATH . '/models/StarredObjects.class.php'; require_once SYSTEM_MODULE_PATH . '/controllers/ApplicationController.class.php'; require_once SYSTEM_MODULE_PATH . '/models/search_engines/' . SEARCH_ENGINE . '.class.php'; set_for_autoload(array('CompanyConfigOptions' => SYSTEM_MODULE_PATH . '/models/CompanyConfigOptions.class.php', 'PinnedProjects' => SYSTEM_MODULE_PATH . '/models/PinnedProjects.class.php', 'AnonymousUser' => SYSTEM_MODULE_PATH . '/models/AnonymousUser.class.php', 'Thumbnails' => SYSTEM_MODULE_PATH . '/models/Thumbnails.class.php', 'ProjectObjectViews' => SYSTEM_MODULE_PATH . '/models/ProjectObjectViews.class.php', 'Permissions' => SYSTEM_MODULE_PATH . '/models/Permissions.class.php', 'ApplicationMailer' => SYSTEM_MODULE_PATH . '/models/ApplicationMailer.class.php', 'ObjectCreatedActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/ObjectCreatedActivityLog.class.php', 'ObjectUpdatedActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/ObjectUpdatedActivityLog.class.php', 'ObjectTrashedActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/ObjectTrashedActivityLog.class.php', 'ObjectRestoredActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/ObjectRestoredActivityLog.class.php', 'CommentsLockedActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/CommentsLockedActivityLog.class.php', 'CommentsUnlockedActivityLog' => SYSTEM_MODULE_PATH . '/models/activity_logs/CommentsUnlockedActivityLog.class.php'));
<?php /** * Documents module initialization file * * @package activeCollab.modules.documents */ define('DOCUMENTS_MODULE', 'documents'); define('DOCUMENTS_MODULE_PATH', APPLICATION_PATH . '/modules/documents'); use_model(array('documents', 'document_categories'), DOCUMENTS_MODULE);
define('FILE_TYPE_VIDEO', 'video'); define('FILE_TYPE_AUDIO', 'audio'); define('FILE_TYPE_UNKNOWN', 'unknown'); define('DATE_FILTER_LATE', 'late'); define('DATE_FILTER_TODAY', 'today'); define('DATE_FILTER_TOMORROW', 'tomorrow'); define('DATE_FILTER_LAST_WEEK', 'last_week'); define('DATE_FILTER_THIS_WEEK', 'this_week'); define('DATE_FILTER_NEXT_WEEK', 'next_week'); define('DATE_FILTER_LAST_MONTH', 'last_month'); define('DATE_FILTER_THIS_MONTH', 'this_month'); define('DATE_FILTER_NEXT_MONTH', 'next_month'); define('DATE_FILTER_SELECTED_DATE', 'selected_date'); define('DATE_FILTER_SELECTED_RANGE', 'selected_range'); define('PROJECT_FILTER_ACTIVE', 'active'); define('PROJECT_FILTER_SELECTED', 'selected'); define('USER_FILTER_ANYBODY', 'anybody'); define('USER_FILTER_NOT_ASSIGNED', 'not_assigned'); define('USER_FILTER_LOGGED_USER', 'logged_user'); define('USER_FILTER_LOGGED_USER_RESPONSIBLE', 'logged_user_responsible'); define('USER_FILTER_COMPANY', 'company'); define('USER_FILTER_SELECTED', 'selected'); define('ATTACHMENT_TYPE_ATTACHMENT', 'attachment'); define('ATTACHMENT_TYPE_FILE_REVISION', 'file_revision'); define('STATUS_FILTER_ACTIVE', 'active'); define('STATUS_FILTER_COMPLETED', 'completed'); define('STATUS_FILTER_ALL', 'all'); define('COMPLETED_TASKS_PER_OBJECT', 3); use_model(array('assignments', 'subscriptions', 'assignment_filters', 'reminders', 'attachments'), RESOURCES_MODULE); set_for_autoload(array('Comment' => RESOURCES_MODULE_PATH . '/models/comments/Comment.class.php', 'Comments' => RESOURCES_MODULE_PATH . '/models/comments/Comments.class.php', 'Category' => RESOURCES_MODULE_PATH . '/models/categories/Category.class.php', 'Categories' => RESOURCES_MODULE_PATH . '/models/categories/Categories.class.php', 'Task' => RESOURCES_MODULE_PATH . '/models/tasks/Task.class.php', 'Tasks' => RESOURCES_MODULE_PATH . '/models/tasks/Tasks.class.php', 'Attachment' => RESOURCES_MODULE_PATH . '/models/attachments/Attachment.class.php', 'Attachments' => RESOURCES_MODULE_PATH . '/models/attachments/Attachments.class.php', 'Tags' => RESOURCES_MODULE_PATH . '/models/tags/Tags.class.php', 'NewTaskActivityLog' => RESOURCES_MODULE_PATH . '/models/activity_logs/NewTaskActivityLog.class.php', 'TaskCompletedActivityLog' => RESOURCES_MODULE_PATH . '/models/activity_logs/TaskCompletedActivityLog.class.php', 'TaskReopenedActivityLog' => RESOURCES_MODULE_PATH . '/models/activity_logs/TaskReopenedActivityLog.class.php', 'NewCommentActivityLog' => RESOURCES_MODULE_PATH . '/models/activity_logs/NewCommentActivityLog.class.php')); require_once RESOURCES_MODULE_PATH . '/functions.php';
/** * Page which displays mailbox activity history * * @param void * @return void */ function view_mailbox() { if ($this->active_mailbox->isNew()) { $this->httpError(HTTP_ERR_NOT_FOUND); } // if use_model('incoming_mail_activity_logs', INCOMING_MAIL_MODULE); $this->wireframe->addBreadCrumb(clean($this->active_mailbox->getDisplayName()), $this->active_mailbox->getViewUrl()); $per_page = 50; // mailbox activity per page $page = (int) $this->request->get('page'); if ($page < 1) { $page = 1; } // if $only_problematic = (bool) array_var($_GET, 'only_problematic', false); if ($only_problematic) { list($activity_history, $pagination) = IncomingMailActivityLogs::paginateConflictsByMailbox($this->active_mailbox, $page, $per_page); } else { list($activity_history, $pagination) = IncomingMailActivityLogs::paginateByMailbox($this->active_mailbox, $page, $per_page); } // if $activity_history = group_by_date($activity_history); $this->smarty->assign(array('activity_history' => $activity_history, 'pagination' => $pagination, 'only_problematic' => $only_problematic)); }
<?php /** * Init pages module * * @package activeCollab.modules.pages */ define('PAGES_MODULE', 'pages'); define('PAGES_MODULE_PATH', APPLICATION_PATH . '/modules/pages'); set_for_autoload(array('Page' => PAGES_MODULE_PATH . '/models/Page.class.php', 'Pages' => PAGES_MODULE_PATH . '/models/Pages.class.php', 'NewPageVersionActivityLog' => PAGES_MODULE_PATH . '/models/activity_logs/NewPageVersionActivityLog.class.php')); use_model('page_versions', PAGES_MODULE); /** * Return pages section URL * * @param Project $project * @return string */ function pages_module_url($project) { return assemble_url('project_pages', array('project_id' => $project->getId())); } // pages_module_url /** * Return add page ULRL * * @param Project $project * @param array $additional_params * @return string */ function pages_module_add_page_url($project, $additional_params = null, $parent = null) {
define('INCOMING_MAIL_STATUS_ANONYMOUS_NOT_ALLOWED', 1); define('INCOMING_MAIL_STATUS_USER_CANNOT_CREATE_OBJECT', 2); define('INCOMING_MAIL_STATUS_PARENT_NOT_EXISTS', 3); define('INCOMING_MAIL_STATUS_USER_CANNOT_CREATE_COMMENT', 4); define('INCOMING_MAIL_STATUS_SYSTEM_CANNOT_CREATE_OBJECT', 5); define('INCOMING_MAIL_STATUS_PROJECT_DOES_NOT_EXISTS', 6); define('INCOMING_MAIL_STATUS_UNKNOWN_SENDER', 7); define('INCOMING_MAIL_STATUS_PARENT_NOT_ACCEPTING_COMMENTS', 8); define('INCOMING_MAIL_STATUS_REPORT_EMAIL', 9); define('INCOMING_MAIL_LOG_STATUS_OK', 1); define('INCOMING_MAIL_LOG_STATUS_ERROR', 0); define('INCOMING_MAIL_DEBUG', false); use_model('incoming_mailboxes', INCOMING_MAIL_MODULE); use_model('incoming_mails', INCOMING_MAIL_MODULE); use_model('incoming_mail_attachments', INCOMING_MAIL_MODULE); use_model('incoming_mail_activity_logs', INCOMING_MAIL_MODULE); /** * Returns description for provided incoming mail status code * * @param integer $status_code * @return string */ function incoming_mail_module_get_status_description($status_code) { $description = array(INCOMING_MAIL_STATUS_OK => lang('Email imported successfully'), INCOMING_MAIL_STATUS_ANONYMOUS_NOT_ALLOWED => lang('Mailbox does not accept emails from unregistered users'), INCOMING_MAIL_STATUS_USER_CANNOT_CREATE_OBJECT => lang('User does not have permission to create object in selected project'), INCOMING_MAIL_STATUS_PARENT_NOT_EXISTS => lang('Requested parent object does not exist'), INCOMING_MAIL_STATUS_USER_CANNOT_CREATE_COMMENT => lang('User does not have permission to create comment in selected object'), INCOMING_MAIL_STATUS_SYSTEM_CANNOT_CREATE_OBJECT => lang('Object cannot be saved, possibly because of validation errors'), INCOMING_MAIL_STATUS_PROJECT_DOES_NOT_EXISTS => lang('Project does not exists'), INCOMING_MAIL_STATUS_UNKNOWN_SENDER => lang('Sender is unknown'), INCOMING_MAIL_STATUS_PARENT_NOT_ACCEPTING_COMMENTS => lang('Object does not accept comments. Either it is locked for comments or it does not support comments'), INCOMING_MAIL_STATUS_REPORT_EMAIL => lang('Email is automated response. Cannot be imported')); if (!array_key_exists($status_code, $description)) { return lang('Unkown status code'); } return $description[$status_code]; } // incoming_mail_module_get_status_description
/** * Use model classes based on plural model name (categories, stories, * news_entries etc) * * @param string $plural * @param string $module * @return null */ function use_model($plural, $module = DEFAULT_MODULE) { if (is_array($plural)) { foreach ($plural as $model_name) { use_model($model_name, $module); } // foreach } else { $object_class = Inflector::camelize(Inflector::singularize($plural)); $manager_class = Inflector::camelize($plural); if (CAN_AUTOLOAD) { set_for_autoload(array('Base' . $object_class => APPLICATION_PATH . "/modules/{$module}/models/{$plural}/Base" . $object_class . '.class.php', $object_class => APPLICATION_PATH . "/modules/{$module}/models/{$plural}/" . $object_class . '.class.php', 'Base' . $manager_class => APPLICATION_PATH . "/modules/{$module}/models/{$plural}/Base" . $manager_class . '.class.php', $manager_class => APPLICATION_PATH . "/modules/{$module}/models/{$plural}/" . $manager_class . '.class.php')); } else { require_once APPLICATION_PATH . "/modules/{$module}/models/{$plural}/Base" . $object_class . '.class.php'; require_once APPLICATION_PATH . "/modules/{$module}/models/{$plural}/" . $object_class . '.class.php'; require_once APPLICATION_PATH . "/modules/{$module}/models/{$plural}/Base" . $manager_class . '.class.php'; require_once APPLICATION_PATH . "/modules/{$module}/models/{$plural}/" . $manager_class . '.class.php'; } // if } // if }
<?php /** * Init invoicing module * * @package activeCollab.modules.invoicing */ define('INVOICING_MODULE', 'invoicing'); define('INVOICING_MODULE_PATH', APPLICATION_PATH . '/modules/invoicing'); define('INVOICE_STATUS_DRAFT', 0); define('INVOICE_STATUS_ISSUED', 1); define('INVOICE_STATUS_BILLED', 2); define('INVOICE_STATUS_CANCELED', 3); define('INVOICES_WORK_PATH', WORK_PATH . '/invoices'); define('INVOICE_NUMBER_COUNTER_TOTAL', ':invoice_in_total'); define('INVOICE_NUMBER_COUNTER_YEAR', ':invoice_in_year'); define('INVOICE_NUMBER_COUNTER_MONTH', ':invoice_in_month'); define('INVOICE_VARIABLE_CURRENT_YEAR', ':current_year'); define('INVOICE_VARIABLE_CURRENT_MONTH', ':current_month'); define('INVOICE_VARIABLE_CURRENT_MONTH_SHORT', ':current_short_month'); define('INVOICE_VARIABLE_CURRENT_MONTH_LONG', ':current_long_month'); use_model(array('invoices', 'invoice_items', 'invoice_payments', 'tax_rates', 'currencies', 'invoice_item_templates', 'invoice_note_templates'), INVOICING_MODULE); require INVOICING_MODULE_PATH . '/functions.php'; // set default scale to 2 if (!defined('INVOICE_PRECISION')) { define('INVOICE_PRECISION', 2); } // if define('INVOICE_PRECISION_ROUNDER', pow(10, INVOICE_PRECISION));
<?php /** * Modulename module initialization file * * @package activeCollab.modules.modulename */ define('MODULENAME_MODULE', 'modulename'); define('MODULENAME_MODULE_PATH', APPLICATION_PATH . '/modules/modulename'); use_model('modulename', MODULENAME_MODULE); set_for_autoload(array('Modulename' => MODULENAME_MODULE_PATH . '/models/modulename/Modulename.class.php'));
/** * Open's connection to mailboxes and download emails with limit of $max_emails * * @param array $mailboxes * @param integer $max_emails */ function importEmails(&$mailboxes, $max_emails = 20) { use_model('incoming_mail_activity_logs', INCOMING_MAIL_MODULE); $import_date = new DateTimeValue(); $imported_emails_count = 0; if (is_foreachable($mailboxes)) { foreach ($mailboxes as $mailbox) { $manager = $mailbox->getMailboxManager(); // open connection to mailbox $result = $manager->connect(); if (!$result || is_error($result)) { // we didn't connect, so we need to log it $error_message = ''; if (is_error($result)) { $error_message = ': ' . $result->getMessage(); } // if IncomingMailActivityLogs::log($mailbox->getId(), lang('Could Not Connect To Mailbox' . $error_message), null, INCOMING_MAIL_LOG_STATUS_ERROR, $import_date); $mailbox->setLastStatus(2); $mailbox->save(); continue; } // if $mailbox->setLastStatus(1); $mailbox->save(); $email_count = $manager->countMessages(); for ($mid = 1; $mid < $email_count + 1; $mid++) { if ($imported_emails_count >= $max_emails) { return true; } // if $current_message_id = 1; $email = $manager->getMessage($current_message_id, INCOMING_MAIL_ATTACHMENTS_FOLDER); if (!instance_of($email, 'MailboxManagerEmail')) { IncomingMailActivityLogs::log($mailbox->getId(), $email->getMessage(), null, INCOMING_MAIL_LOG_STATUS_ERROR, $import_date); continue; } // if $pending_email = IncomingMailImporter::createPendingEmail($email, $mailbox); if (!instance_of($pending_email, 'IncomingMail')) { IncomingMailActivityLogs::log($mailbox->getId(), $pending_email->getMessage(), $email, INCOMING_MAIL_LOG_STATUS_ERROR, $import_date); continue; } // if $manager->deleteMessage($current_message_id, true); $project_object = IncomingMailImporter::importPendingEmail($pending_email, false, $email->getIsReport()); if (!instance_of($project_object, 'ProjectObject')) { IncomingMailActivityLogs::log($mailbox->getId(), $project_object->getMessage(), $pending_email, INCOMING_MAIL_LOG_STATUS_ERROR, $import_date); continue; } // if IncomingMailActivityLogs::log($mailbox->getId(), lang('Imported Successfully'), $project_object, INCOMING_MAIL_LOG_STATUS_OK, $import_date); $user = $project_object->getCreatedBy(); if (instance_of($user, 'User')) { $user->setLastActivityOn(new DateTimeValue()); $user->save(); } // if $pending_email->delete(); $imported_emails_count++; } // for } // foreach } // if }