Gc\Document\Model::fromUrlKey PHP Method

fromUrlKey() public static method

Initiliaze from url and parent
public static fromUrlKey ( string $urlKey, mixed $parentId = false ) : Model
$urlKey string Url key
$parentId mixed Parent id
return Model
    public static function fromUrlKey($urlKey, $parentId = false)
    {
        $documentTable = new Model();
        $sqlData = array('url_key' => $urlKey);
        $documentTable->events()->trigger(__CLASS__, 'before.load', $documentTable);
        if ($parentId !== false) {
            $sqlData['parent_id'] = $parentId;
        }
        $row = $documentTable->fetchRow($documentTable->select($sqlData));
        if (!empty($row)) {
            $documentTable->setData((array) $row);
            $documentTable->setOrigData();
            $documentTable->events()->trigger(__CLASS__, 'after.load', $documentTable);
            return $documentTable;
        } else {
            $documentTable->events()->trigger(__CLASS__, 'after.load.failed', $documentTable);
            return false;
        }
    }

Usage Example

Example #1
0
 /**
  * Returns documents
  * $data can be mixed
  * if data is an array, return all documents
  * if data is numeric, return all documents with parent_id equal to $data
  * if data is string, return all documents with parent's url key equal to $data
  *
  * @param mixed $data Data
  *
  * @return array \Gc\Document\Model
  */
 public function __invoke($data = null)
 {
     $elements = array();
     $documents = new DocumentCollection();
     if (empty($data)) {
         $elements = $documents->load(0)->getDocuments();
     } else {
         if (is_numeric($data)) {
             $elements = $documents->load($data)->getDocuments();
         } elseif (is_string($data)) {
             $document = DocumentModel::fromUrlKey($data);
             $elements = $document->getChildren();
         } elseif (is_array($data)) {
             foreach ($data as $documentId) {
                 if (empty($documentId)) {
                     continue;
                 }
                 $document = $this->getView()->document($documentId);
                 if (!empty($document)) {
                     $elements[] = $document;
                 }
             }
         }
     }
     return $elements;
 }
All Usage Examples Of Gc\Document\Model::fromUrlKey