public function __construct($args)
 {
     if (PerchUtil::count($args)) {
         $this->event = array_shift($args);
         $this->subject = array_shift($args);
         $this->args = $args;
         $Users = new PerchUsers();
         $this->user = $Users->get_current_user();
     }
 }
 public function __construct($args)
 {
     if (PerchUtil::count($args)) {
         $this->event = array_shift($args);
         $this->subject = array_shift($args);
         $this->args = $args;
         $Perch = Perch::fetch();
         if ($Perch->admin) {
             $Users = new PerchUsers();
             $this->user = $Users->get_current_user();
         } else {
             $this->runtime = true;
         }
     }
 }
 public function receive_new_comment($SubmittedForm)
 {
     $input = $SubmittedForm->data;
     if ($input['parentID']) {
         $data = array();
         $data['parentID'] = $input['parentID'];
         $data['commentDateTime'] = date('Y-m-d H:i:s');
         foreach ($this->static_fields as $field) {
             if (!isset($data[$field])) {
                 if (isset($input[$field]) && $input[$field] != '') {
                     $data[$field] = trim($input[$field]);
                 }
             }
         }
         // dynamic fields
         $dynamic_fields = array();
         foreach ($input as $field => $val) {
             if (!isset($data[$field])) {
                 $dynamic_fields[$field] = trim($val);
             }
         }
         $data['commentDynamicFields'] = PerchUtil::json_safe_encode($dynamic_fields);
         // Anti-spam
         $Settings = $this->api->get('Settings');
         $akismetAPIKey = $Settings->get('perch_comments_akismet_key')->val();
         $spam = false;
         $antispam = $SubmittedForm->get_antispam_values();
         $environment = $_SERVER;
         $spam_data = array();
         $spam_data['fields'] = $antispam;
         $spam_data['environment'] = $environment;
         $data['commentSpamData'] = PerchUtil::json_safe_encode($spam_data);
         $data['commentIP'] = ip2long($_SERVER['REMOTE_ADDR']);
         $spam = $this->_check_for_spam($antispam, $environment, $akismetAPIKey);
         if ($spam) {
             $data['commentStatus'] = 'SPAM';
         } else {
             $Users = new PerchUsers();
             $CurrentUser = $Users->get_current_user();
             if (is_object($CurrentUser) && $CurrentUser->logged_in()) {
                 $data['commentStatus'] = 'LIVE';
             } else {
                 $data['commentStatus'] = 'PENDING';
             }
         }
         foreach ($data as $key => $val) {
             switch ($key) {
                 case 'commentHTML':
                     if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                         // sneaky autoloading hack
                     }
                     if (PERCH_HTML5) {
                         $Textile = new \Netcarver\Textile\Parser('html5');
                     } else {
                         $Textile = new \Netcarver\Textile\Parser();
                     }
                     if (PERCH_RWD) {
                         $val = $Textile->setDimensionlessImages(true)->textileRestricted($val);
                     } else {
                         $val = $Textile->textileRestricted($val);
                     }
                     if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
                         $val = str_replace(' />', '>', $val);
                     }
                     break;
                 case 'commentURL':
                     if (!parse_url($val, PHP_URL_SCHEME)) {
                         $val = 'http://' . $val;
                     }
                     if (!parse_url($val, PHP_URL_SCHEME)) {
                         $val = '';
                     }
                     $val = strtolower($val);
                     break;
                 case 'commentEmail':
                     $val = strtolower($val);
                     break;
                 case 'parentTitle':
                     $val = html_entity_decode($val, ENT_QUOTES, 'UTF-8');
                     break;
             }
             $data[$key] = $val;
         }
         $r = $this->create($data);
         return $r;
     }
     PerchUtil::debug($SubmittedForm);
 }
Exemplo n.º 4
0
<?php

$Perch = Perch::fetch();
$Settings = PerchSettings::fetch();
$Users = new PerchUsers();
$CurrentUser = $Users->get_current_user();
?>
<div class="sidebar">
    <ul class="metanav">
		<?php 
if ($CurrentUser->has_priv('perch.settings')) {
    ?>
	    <li>
	        <a href="<?php 
    echo PerchUtil::html(PERCH_LOGINPATH);
    ?>
/core/settings/" class="icon settings<?php 
    if ($Perch->get_section() == 'core/settings') {
        echo ' selected';
    }
    ?>
"><span><?php 
    echo PerchLang::get('Settings');
    ?>
</span></a>
	    </li>
	    <?php 
}
if (!defined('PERCH_AUTH_PLUGIN') || !PERCH_AUTH_PLUGIN) {
    ?>
	    <li><a href="<?php 
Exemplo n.º 5
0
function perch_blog_check_preview()
{
    if (!defined('PERCH_PREVIEW_ARG')) {
        define('PERCH_PREVIEW_ARG', 'preview');
    }
    if (perch_get(PERCH_PREVIEW_ARG)) {
        $Users = new PerchUsers();
        $CurrentUser = $Users->get_current_user();
        if (is_object($CurrentUser) && $CurrentUser->logged_in()) {
            PerchUtil::debug('Entering preview mode');
            PerchBlog_Posts::$preview_mode = true;
        }
    }
}
 /**
  * Duplicate all the region items with a new revision number
  *
  * @param string $regionID
  * @param string $old_rev
  * @param string $new_rev
  * @param boolean $copy_resources
  * @return void
  * @author Drew McLellan
  */
 public function create_new_revision($regionID, $old_rev, $new_rev, $copy_resources = false)
 {
     $Users = new PerchUsers();
     $CurrentUser = $Users->get_current_user();
     $sql = 'INSERT INTO ' . $this->table . ' (itemID, regionID, pageID, itemRev, itemOrder, itemJSON, itemSearch, itemUpdatedBy)
                 SELECT itemID, regionID, pageID, ' . $this->db->pdb($new_rev) . ' AS itemRev, itemOrder, itemJSON, itemSearch, ' . $this->db->pdb($CurrentUser->id()) . ' AS itemUpdatedBy
                 FROM ' . $this->table . '
                 WHERE regionID=' . $this->db->pdb((int) $regionID) . ' AND itemRev=' . $this->db->pdb((int) $old_rev) . '
                 ORDER BY itemOrder ASC';
     $this->db->execute($sql);
     if ($copy_resources) {
         $sql = 'REPLACE INTO ' . PERCH_DB_PREFIX . 'resource_log (appID, itemFK, itemRowID, resourceID)
                 SELECT cr.appID, cr.itemFK, c2.itemRowID, cr.resourceID
                 FROM ' . PERCH_DB_PREFIX . 'resource_log cr, ' . PERCH_DB_PREFIX . 'content_items c1, ' . PERCH_DB_PREFIX . 'content_items c2
                 WHERE  cr.appID=' . $this->db->pdb('content') . ' AND cr.itemFK=' . $this->db->pdb('itemRowID') . ' AND cr.itemRowID=c1.itemRowID AND c1.itemID = c2.itemID AND c1.regionID=' . $this->db->pdb((int) $regionID) . ' AND c2.regionID=' . $this->db->pdb((int) $regionID) . '
                    AND c1.itemRev = ' . $this->db->pdb((int) $old_rev) . '
                    AND c2.itemRev = ' . $this->db->pdb((int) $new_rev);
         $this->db->execute($sql);
     }
     $this->renumber_items($regionID, $new_rev);
 }
Exemplo n.º 7
0
function perch_content_check_preview()
{
    if (!defined('PERCH_PREVIEW_ARG')) {
        define('PERCH_PREVIEW_ARG', 'preview');
    }
    if (perch_get(PERCH_PREVIEW_ARG)) {
        $contentID = 'all';
        $rev = false;
        $var = perch_get(PERCH_PREVIEW_ARG);
        if ($var != 'all' && $var != 'preview') {
            $rev = $var;
            if (strpos($rev, 'r')) {
                $parts = explode('r', $rev);
                $contentID = (int) $parts[0];
                $rev = (int) $parts[1];
            }
        }
        $Users = new PerchUsers();
        $CurrentUser = $Users->get_current_user();
        if (is_object($CurrentUser) && $CurrentUser->logged_in()) {
            $Content = PerchContent::fetch();
            $Content->set_preview($contentID, $rev);
        }
    }
}