Exemplo n.º 1
0
 public function sc($atts)
 {
     if (isset($atts['style'])) {
         $atts['theme'] = $atts['style'];
     }
     $get = new fileaway_definitions();
     extract($get->pathoptions);
     extract($this->correctatts(wp_parse_args($atts, $this->attachaway), $this->shortcodes['attachaway'], 'attachaway'));
     if ($devices == 'mobile' && !$get->is_mobile) {
         return;
     } elseif ($devices == 'desktop' && $get->is_mobile) {
         return;
     }
     if (!fileaway_utility::visibility($hidefrom, $showto)) {
         return;
     }
     if ($this->op['javascript'] == 'footer') {
         $GLOBALS['fileaway_add_scripts'] = true;
     }
     if ($this->op['stylesheet'] == 'footer') {
         $GLOBALS['fileaway_add_styles'] = true;
     }
     $attachaway = true;
     $statstatus = 'false';
     $iss2 = false;
     $rsslink = null;
     $crumbies = null;
     $clearfix = $align == 'none' ? "<div class='ssfa-clearfix'></div>" : null;
     $boximages = array();
     $flightbox = $get->is_mobile ? false : $flightbox;
     $randcolor = array("red", "green", "blue", "brown", "black", "orange", "silver", "purple", "pink");
     $fb = 0;
     $count = 0;
     $thefiles = '';
     $uid = rand(0, 9999);
     global $post, $is_IE, $is_safari;
     $ascdesc = $desc ? 'DESC' : 'ASC';
     $id = $postid ? $postid : $post->ID;
     $attachments = get_posts(array('orderby' => $orderby, 'order' => $ascdesc, 'post_type' => 'attachment', 'posts_per_page' => -1, 'post_parent' => $id));
     if ($debug === 'on' && is_user_logged_in()) {
         return $this->debug($id, $attachments);
     }
     include fileaway_dir . '/lib/inc/inc.styles.php';
     $fadeit = $fadein ? $fadein == 'opacity' ? 'opacity:0;' : 'display:none;' : null;
     if ($fadein) {
         $fadescript = $fadein == 'opacity' ? '.animate({opacity:"1"}, ' . $fadetime . ');' : '.fadeIn(' . $fadetime . ');';
         $thefiles .= '<script> jQuery(document).ready(function($){ setTimeout(function(){ $("div#ssfa-meta-container-' . $uid . '")' . $fadescript . ' }, 1000); }); </script>';
     }
     $mobileclass = $get->is_mobile ? 'ssfa-mobile' : null;
     $flightbox_nonce = !empty($flightbox) ? 'data-fbn="' . wp_create_nonce('fileaway-flightbox-nonce') . '"' : '';
     $flightbox_class = !empty($flightbox) ? 'flightbox-parent' : '';
     $thefiles .= "{$clearfix}<div id='ssfa-meta-container-{$uid}' data-uid='{$uid}' " . "{$flightbox_nonce} class='ssfa-meta-container {$mobileclass} {$class} {$flightbox_class}' style='margin: 10px 0 20px; {$fadeit} {$howshouldiputit}'>";
     include fileaway_dir . '/lib/inc/inc.precontent.php';
     if ($type === 'table') {
         $typesort = null;
         $filenamesort = null;
         $capsort = null;
         $dessort = null;
         $sizesort = null;
         if ($sortfirst === 'type') {
             $typesort = " data-sort-initial='true'";
         } elseif ($sortfirst === 'type-desc') {
             $typesort = " data-sort-initial='descending'";
         } elseif ($sortfirst === 'filename') {
             $filenamesort = " data-sort-initial='true'";
         } elseif ($sortfirst === 'filename-desc') {
             $filenamesort = " data-sort-initial='descending'";
         } elseif ($sortfirst === 'caption') {
             $capsort = " data-sort-initial='true'";
         } elseif ($sortfirst === 'caption-desc') {
             $capsort = " data-sort-initial='descending'";
         } elseif ($sortfirst === 'description') {
             $dessort = " data-sort-initial='true'";
         } elseif ($sortfirst === 'description-desc') {
             $dessort = " data-sort-initial='descending'";
         } elseif ($sortfirst === 'size') {
             $sizesort = " data-sort-initial='true'";
         } elseif ($sortfirst === 'size-desc') {
             $sizesort = " data-sort-initial='descending'";
         } else {
             $filenamesort = " data-sort-initial='true' ";
         }
         $disablesort = $sortfirst == 'disabled' ? "data-sort='false'" : false;
         $filenamesort = $disablesort ? null : $filenamesort;
         $filenamelabel = $filenamelabel ? $filenamelabel : _x('File&nbsp;Name', 'File Name Column', 'file-away');
         $thefiles .= "<script type='text/javascript'>jQuery(function(){jQuery('.footable').footable();});</script>" . "<table id='ssfa-table' data-filter='#filter-{$uid}' {$disablesort} {$page} class='footable ssfa-sortable {$theme}{$textalign}'><thead><tr>" . "<th class='ssfa-sorttype {$theme}-first-column' title=\"" . _x('Click to Sort', 'Column Sort Message', 'file-away') . "\"" . $typesort . ">" . _x('Type', 'File Type Column', 'file-away') . "</th>" . "<th class='ssfa-sortname' title=\"" . _x('Click to Sort', 'Column Sort Message', 'file-away') . "\"" . $filenamesort . ">" . $filenamelabel . "</th>";
         $thefiles .= $capcolumn ? "<th class='ssfa-sortcapcolumn' title=\"" . _x('Click to Sort', 'Column Sort Message', 'file-away') . "\"" . $capsort . ">" . $capcolumn . "</th>" : null;
         $thefiles .= $descolumn ? "<th class='ssfa-sortdescolumn' title=\"" . _x('Click to Sort', 'Column Sort Message', 'file-away') . "\"" . $dessort . ">" . $descolumn . "</th>" : null;
         $thefiles .= $size !== 'no' ? "<th class='ssfa-sortsize' data-type='numeric' title=\"" . _x('Click to Sort', 'Column Sort Message', 'file-away') . "\"" . $sizesort . ">" . _x('Size', 'File Size Column', 'file-away') . "</th>" : null;
         $thefiles .= "</tr></thead><tfoot><tr><td colspan='100'>{$pagearea}</td></tr></tfoot><tbody>";
     }
     if (is_array($attachments)) {
         foreach ($attachments as $attachment) {
             extract(fileaway_utility::getattachment($attachment->ID));
             $filetype = wp_check_filetype($filelink);
             $ext = $filetype['ext'];
             $extension = $ext;
             $oext = $ext;
             $basename = fileaway_utility::basename($filelink);
             $rawname = str_replace('.' . $ext, '', $basename);
             $filename = str_replace(array('~', '-', '--', '_', '.', '*'), ' ', $rawname);
             $title = $title ? $title : $filename;
             if ($caption === strtoupper($caption) || $caption === strtolower($caption)) {
                 $caption = fileaway_utility::sentencecase($caption);
             }
             if ($description === strtoupper($description) || $description === strtolower($description)) {
                 fileaway_utility::sentencecase($description);
             }
             $title = "<span class='ssfa-filename'>" . fileaway_utility::strtotitle(strtolower($title)) . "</span>";
             $ext = !$ext ? '?' : $ext;
             $ext = strtolower($ext);
             $ext = substr($ext, 0, 4) . '';
             $bytes = filesize(get_attached_file($attachment->ID));
             if ($size !== 'no') {
                 $fsize = fileaway_utility::formatBytes($bytes, 1);
                 $fsize = !preg_match('/[a-z]/i', $fsize) ? '1k' : ($fsize === 'NAN' ? '0' : $fsize);
             }
             include fileaway_dir . '/lib/inc/inc.colors.php';
             $listfilesize = $type !== 'table' && $size !== 'no' ? $theme === "ssfa-minimal-list" ? "<span class='ssfa-listfilesize'> ({$fsize})</span>" : "<span class='ssfa-listfilesize'>{$fsize}</span>" : null;
             $file = $basename;
             $manager = false;
             $onlyaudio = false;
             include fileaway_dir . '/lib/inc/inc.filters.php';
             if ($excluded) {
                 continue;
             }
             $getthumb = false;
             $thumbnails = false;
             include fileaway_dir . '/lib/inc/inc.icons.php';
             $count += 1;
             $link = $filelink;
             $fulllink = 'href="' . $link . '"';
             if ($flightbox) {
                 include fileaway_dir . '/lib/inc/inc.flightbox.php';
             }
             if ($type !== 'table') {
                 $thefiles .= "<a id='ssfa' class='{$display}{$noicons}{$colors}' {$fulllink} {$linktype}>" . "<div class='ssfa-listitem {$ellipsis}'><span class='ssfa-topline'>{$icon} {$title} {$listfilesize}</span></div>" . "</a>";
             } else {
                 $thefiles .= "<tr><td id='filetype-ssfa-file-{$uid}-{$count}' class='ssfa-sorttype {$theme}-first-column'><a {$fulllink} {$linktype}>{$icon} {$ext}</a></td>" . "<td id='filename-ssfa-file-{$uid}-{$count}' class='ssfa-sortname'><a {$fulllink} class='{$colors}' {$linktype}>{$title}</a></td>";
                 $thefiles .= $capcolumn ? "<td class='ssfa-sortcapcolumn'>{$caption}</td>" : null;
                 $thefiles .= $descolumn ? "<td class='ssfa-sortdescolumn'>{$description}</td>" : null;
                 $thefiles .= $size !== 'no' ? "<td class='ssfa-sortsize' data-value='{$bytes}'>{$fsize}</td>" : null;
                 $thefiles .= '</tr>';
             }
         }
         $thefiles .= $type === 'table' ? '</tbody></table></div>' : '</div>';
         $thefiles .= "</div>{$clearfix}";
     }
     if ($flightbox && $fb) {
         $thefiles .= '<script>FlightBoxes[' . $uid . '] = ' . $fb . '; ';
         if (count($boximages) > 0) {
             $thefiles .= implode(' ', $boximages);
         }
         $thefiles .= '</script>';
     }
     return $count > 0 ? $thefiles : null;
 }