Ejemplo n.º 1
0
 /**
  * http://www.php.net/manual/en/function.natsort.php#45346
  * @param <type> $array
  * @return <type>
  */
 public static function array_sorting($array, $targetFolder, $arrange)
 {
     $ag_array_data = array();
     // READS XML DATA AND GENERATES ARRAYS
     foreach ($array as $key => $value) {
         // Set Possible Description File Apsolute Path // Instant patch for upper and lower case...
         $ag_pathWithStripExt = $targetFolder . agHelper::ag_removExtension(basename($value));
         $ag_XML_path = $ag_pathWithStripExt . ".xml";
         if (agHelper::ag_exists($ag_pathWithStripExt . ".XML")) {
             $ag_XML_path = $ag_pathWithStripExt . ".XML";
         }
         $ag_xml_value = array();
         $ag_xml_value["value"] = $value;
         // IMAGE NAME
         $ag_xml_value["priority"] = "none";
         // DEFAULT PRIORITY
         $ag_xml_value["date"] = date("YmdHi", filemtime($targetFolder . $value));
         // DEFAULT DATE
         if (agHelper::ag_exists($ag_XML_path)) {
             $ag_XML_xml = simplexml_load_file($ag_XML_path);
             if (isset($ag_XML_xml)) {
                 if (isset($ag_XML_xml->visible)) {
                     if ((string) $ag_XML_xml->visible == 'false') {
                         continue;
                         // SKIP HIDDEN IMAGES
                     }
                 }
                 if (isset($ag_XML_xml->priority) && is_numeric((string) $ag_XML_xml->priority) && (string) $ag_XML_xml->priority >= 0) {
                     $ag_xml_value["priority"] = (string) $ag_XML_xml->priority;
                     // XML PRIORITY
                 }
             }
         }
         $ag_array_data[] = $ag_xml_value;
     }
     $sort_by = 'priority';
     switch ($arrange) {
         case "date":
             $sort_by = 'date';
             break;
         case "name":
             $sort_by = 'value';
             break;
     }
     // for all arguments without the first starting at end of list
     // clear arrays
     $new_array = array();
     $temporary_array = array();
     // walk through original array
     foreach ($ag_array_data as $original_key => $original_value) {
         // and save only values
         $temporary_array[] = $original_value[$sort_by];
     }
     // sort array on values
     natcasesort($temporary_array);
     if ($sort_by == "date") {
         $temporary_array = array_reverse($temporary_array, true);
     }
     // delete double values
     $temporary_array = array_unique($temporary_array);
     // walk through temporary array
     foreach ($temporary_array as $temporary_value) {
         // walk through original array
         foreach ($ag_array_data as $original_key => $original_value) {
             // and search for entries having the right value
             if ($temporary_value == $original_value[$sort_by]) {
                 // save in new array
                 $new_array[$original_key] = $original_value;
             }
         }
     }
     // update original array
     $ag_array_data = $new_array;
     // CREATE SORTED ARRAY
     $array = array();
     foreach ($ag_array_data as $original_key => $original_value) {
         // and save only values
         $array[] = $original_value['value'];
     }
     return $array;
 }
Ejemplo n.º 2
0
 /**
  *  Reads description files
  */
 private function readDescriptionFiles()
 {
     // Create Images Array
     unset($this->descArray);
     if (file_exists($this->imagesFolderPhysicalPath)) {
         $ag_images = array();
         $ag_files = JFolder::files($this->imagesFolderPhysicalPath);
         $ag_ext_valid = array("jpg", "jpeg", "gif", "png");
         // SET VALID IMAGE EXTENSION
         foreach ($ag_files as $key => $value) {
             if (is_numeric(array_search(strtolower(agHelper::ag_getExtension(basename($value))), $ag_ext_valid))) {
                 $ag_images[] = $value;
             }
         }
         $ag_files = array_merge($ag_images, JFolder::folders($this->imagesFolderPhysicalPath));
         if (!empty($ag_files)) {
             foreach ($ag_files as $key => $f) {
                 // Set image name as imageDescription value, as predifined value
                 $this->descArray[$f] = $f;
                 // Set Possible Description File Apsolute Path // Instant patch for upper and lower case...
                 $ag_pathWithStripExt = $this->imagesFolderPhysicalPath . agHelper::ag_removExtension($f);
                 $descriptionFileApsolutePath = $ag_pathWithStripExt . ".XML";
                 if (file_exists($ag_pathWithStripExt . ".xml")) {
                     $descriptionFileApsolutePath = $ag_pathWithStripExt . ".xml";
                 }
                 if (file_exists($descriptionFileApsolutePath)) {
                     // Check is descriptions file exists
                     $ag_imgXML_xml = JFactory::getXML($descriptionFileApsolutePath);
                     $ag_imgXML_captions = $ag_imgXML_xml->captions;
                     $lang = JFactory::getLanguage();
                     $langTag = strtolower($lang->getTag());
                     // GET DEFAULT LABEL
                     if (!empty($ag_imgXML_captions->caption)) {
                         foreach ($ag_imgXML_captions->caption as $ag_imgXML_caption) {
                             if (strtolower($ag_imgXML_caption->attributes()->lang->data()) == "default") {
                                 $this->descArray[$f] = $ag_imgXML_caption->data();
                             }
                         }
                     }
                     // GET CURRENT LANG LABEL
                     if (!empty($ag_imgXML_captions->caption)) {
                         foreach ($ag_imgXML_captions->caption as $ag_imgXML_caption) {
                             if (strtolower($ag_imgXML_caption->attributes()->lang->data()) == strtolower($langTag)) {
                                 $this->descArray[$f] = $ag_imgXML_caption->data();
                             }
                         }
                     }
                     // RICH TEXT SUPPORT
                     if ($this->params['plainTextCaptions']) {
                         $this->descArray[$f] = strip_tags($this->descArray[$f]);
                     }
                 }
             }
         }
         // if(file_exists($descriptionFileApsolutePath))
     } else {
         $this->descArray = null;
     }
 }