به انجمن خوش آمدید. ما می‌خواهیم در اینجا از شما، خبر داشته باشیم. سوال بپرسید. افکار خود را به اشتراک بگذارید. ماهرتر شویم و به دیگران کمک کنیم.
  
Picture Placeholder: مجتبی نظرزاده اوغاز
  • مجتبی نظرزاده اوغاز
01398/02/29 02:54 ب.ظ
1398/02/29 02:54 ب.ظخیرDevelop
0
1398/02/29 02:54 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01397/10/26 07:48 ب.ظ

​https://blogs.msdn.microsoft.com/mvpawardprogram/2016/05/03/how-to-restore-sharepoint-2013-content-from-unattached-database/​

1397/10/26 07:48 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01397/09/21 10:15 ق.ظ

راهکار مدیریت دانش در س.pptx​

 

1397/09/21 10:15 ق.ظخیرآموزشی
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01397/04/27 05:36 ب.ظ

<SharePoint:SPNavigationManager
      id="TreeViewNavigationManagerV4"
      runat="server"
      ContainedControl="TreeView"
      CssClass="ms-tv-box"
     >
      <SharePoint:splinkbutton runat="server" NavigateUrl="~site/_layouts/15/viewlsts.aspx" id="idNavLinkSiteHierarchyV4" Text="<%$Resources:wss,treeview_header%>" accesskey="<%$Resources:wss,quiklnch_allcontent_AK%>"
      CssClass="ms-tv-header" />
       <SharePoint:delegatecontrol runat="server" ControlId="TreeViewAndDataSource">
        <Template_Controls>
        <SharePoint:sphierarchydatasourcecontrol
         runat="server"
         id="TreeViewDataSourceV4"
         RootContextObject="Web"
         IncludeDiscussionFolders="true"
        />
        <SharePoint:sprememberscroll runat="server" id="TreeViewRememberScrollV4" onscroll="javascript:_spRecordScrollPositions(this);"
         style="overflow: auto;">
         <SharePoint:sptreeview
         id="WebTreeViewV4"
         runat="server"
         ShowLines="false"
         DataSourceId="TreeViewDataSourceV4"
         ExpandDepth="0"
         SelectedNodeStyle-CssClass="ms-tv-selected"
         NodeStyle-CssClass="ms-tv-item"
         SkipLinkText=""
         NodeIndent="12"
         ExpandImageUrl="/_layouts/15/images/tvclosed.png?rev=40"
         ExpandImageUrlRtl="/_layouts/15/images/tvclosedrtl.png?rev=40"
         CollapseImageUrl="/_layouts/15/images/tvopen.png?rev=40"
         CollapseImageUrlRtl="/_layouts/15/images/tvopenrtl.png?rev=40"
         NoExpandImageUrl="/_layouts/15/images/tvblank.gif?rev=40"
         >
         </SharePoint:SPTreeView>
        </SharePoint:SPRememberScroll>
        </Template_Controls>
       </SharePoint:DelegateControl>
     </SharePoint:SPNavigationManager>

این کد به داخل تک <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

در  فایل نما  یا صفحات aspx شیرپوینت اسنتفاده کنید .

 

 

1397/04/27 05:36 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01396/11/16 05:28 ب.ظ

https://www.metrostarsystems.com/enterprise-it/create-button-sharepoint/

2013 and 2016 SharePoint Button Tutorial

Buttons are another way we can provide intuitive navigation for our site users.

Situations where the use of buttons may be appropriate:

1. To provide easy access to other related SharePoint sites (that may be several clicks away). For example, when implementing sites, you may choose to add a help button that links to a Technical FAQ Wiki.

2. To provide navigation in a Web Part Page (WPP). Unless we access the code and ‘unblock’ the Quick Launch bar, we don’t get that navigational tool on a Web Part Page. Using breadcrumbs to navigate out of a WPP can also be confusing to novice SharePoint users because the breadcrumbs (of course) map to the library holding this file. Because of this, whenever I create a WPP I like to give users a ‘home’ button to give them easy access back to where they came from.

3. To provide links into specific list and library views. Remember when you change views in a list or library, the URL also changes. You can use that path to provide users a link directly to a filtered view– for example, to provide a view of items that have been recently added –or to provide direct access a new list item form.

4. To provide access to an external site or a network directory. If you have an address for it, you can link to it (it doesn’t have to be another SharePoint site).

The point is to provide your site users with navigation that is intuitive and easy to use. Buttons certainly fit the bill on both criteria. Ok, have I sparked your interest yet? The below steps will demonstrate how to add a button using SharePoint 2013 and 2016.

Get the Add a New Item Link

 
add new SharePoint button demo
 

This is pretty simple. Just hover over the new item link, right click, then select Copy Shortcut.

Get the Add a New Item Link for Document Libraries

For Document libraries this step is a little bit harder. You will notice that hovering over the new document options as well as the Upload Document ribbon control does not produce a link.

 
Hovering add new document in SharePoint
 
Upload document in SharePoint
 

So what we need to do is press F12 do bring up the Developer Tools in Internet Explorer. Now select the Network tab and press the Green Play Button.

 
Developer tools
 

Click “Upload Document” in the ribbon.

 
Upload document in SharePoint
 

You will now see all of the URLs that are requested by the page. The very first one is the one we are interested in, as this is the Upload.aspx page, where we can upload files from. Select that entry, right click, then select Copy URL.

https://www.YOURURLGOESHERE.com/tech/ec/_layouts/15/listform.aspx?PageType=8&ListId=%7B2F318620%2D4A33%2D4231%2DA5B0%2DC0ABBF88C5
EA%7D&RootFolder=

https://www.YOURURLGOESHERE.com/tech/ec/_layouts/15/Upload.aspx?List=%7B4A8FCC70%2D477F%2D4AE4%2D9F4D%2D00A6191F01AB%7D&
RootFolder=%2Ftech%2Fec%2FAddNewDocDemo&Source=https%3A%2F%2F
stargate%2Emetrostarsystems%2Ecom%2Ftech%2Fec%2FAddNewDocDemo%2F
Forms%2FAllItems%2Easpx&IsDlg=1

You should now have a URL for either the list, library, or both.

Create a Button Link

Now we are ready to create the button on a page to link to the new item or upload document page.

On the page in either the Content Editor Web Part (CEWP) or in Page Content select Insert>Picture>From Computer. Now select the button image you want to insert it onto the page.

 
Link add new sharepoint button
 

Now select the inserted picture and click on Insert>Link>FromSharePoint. Now paste the URL we previously obtained.

 
SharePoint add new item

1396/11/16 05:28 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
51394/07/07 09:33 ق.ظ

​یک لیست شرکت ها دارم که دو وضعیت فعال و غیر فعال دارند . 
دو نما ایجاد کردم ، با فیلتر روی وضعیتها 

حالا چطور می تونم نماها رو مدیریت کنم ؟ یعنی بگم اگر در نمای شرکت های فعال بود ، پیش فرض فیلد وضعیت فعال باشد و اگر در نمای غیر فعال بود ، پیش فرض وضعیت غیرفعال باشد ؟


mostafa rafiei1396/04/26 11:16 ق.ظ118خیرDevelop
14/3844977304163
31393/11/07 08:21 ق.ظ1
mostafa rafiei
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
31394/08/07 10:29 ق.ظ

​امکانش هست مشخص کنیم در یک لیست ، فیلدی را کاربران بی نام نبینند کاربران لاگین کرده ببیینند ؟

mostafa rafiei1396/01/15 12:43 ب.ظ131خیرDevelop
15/6945497041774
31393/11/07 08:21 ق.ظ1
mostafa rafiei
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01395/08/23 05:13 ب.ظ

Check out http://www.viewmaster365.com/#/How and http://www.viewmaster365.com/#/Create/ActionDelete

It step by step explains how to execute JavaScript from a Calculated Column.

The ID for an item is available on the Table Row, because a Calculated Formula is displayed inside that TR structure;
all you have to do is:

var TR=this;while(TR.tagName!='TR'){TR=TR.parentNode}

to get to that TR and its iid attribute

var ID=TR.iid.split(',')[1]

Note that you can get the List GUID from the current context.

var ctx = new SP.ClientContext.get_current();
var listGuid = SP.ListOperation.Selection.getSelectedList();

The Workflow GUID you have to do some more JavaScript digging for, but hardcoding is the easiest option.

Please post the code you come up or have problems with; it is on my (long) list of todos to write an Example for this on the ViewMaster365 site

Client Side Rendering

Ofcourse on SharePoint 2013 you can also do this with CSR. But you have to add an extra JS file and JSlinks on every View you want it applied.

In a Calculated Column it just works.

Update #1

This Formula in a Calculated Column set to datatype=Number will get you started;
I haven't tested if the URL from your original post actually starts a workflow.

="<button style=""cursor:pointer;"" onclick=""{"
&"event.preventDefault();"
&"var clientContext=new SP.ClientContext.get_current();"
&"var listGUID=SP.ListOperation.Selection.getSelectedList();"
&"var workflowGUID='{F704E402-6DA6-4C75-AA97-FBC6F2BEA69F}';"
&"var TR=this;while(TR.tagName!='TR'){TR=TR.parentNode}" 
&"var url='https://mysharepointurl/_layouts/15/IniWrkflIP.aspx?List='+listGUID;" 
&"url += '&TemplateID='+workflowGUID;" 
&"url += '&ID='+TR.id.split(',')[1];" 
&"alert(url);"
&"SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog',{url:url});"
&"}"">Collect Signature</button>"

Update #2

Took me a day to wade trhu all the blogs with partial (and bloated) answers out there...

Yes the Workflow GUID changes every time you make a change. So you have to query the Workflow Subscriptions on the List, a matching Name gives you the ID (but you need the 'Subscription' to start a workflow, Not the GUID)
Alas the library sp.workflowservices.js needed for this is not available on the List view page; so some extra scripting is required to load it if needed (only for the first button you click)

This immediatly starts the Workflow, no pages in between

Copy/Paste in a Calculated Column, set the datatype to Number

="<button style=""cursor:pointer;"" onclick=""{"
&"event.preventDefault();"
&"function startWorkflow(itemID, wfName) {"
&"  function __startWorkflow() {"
&"      var ctx = new SP.ClientContext.get_current(),"
&"          wfsManager = SP.WorkflowServices.WorkflowServicesManager.newObject(ctx,ctx.get_web()),"
&"          wfSubs = wfsManager.getWorkflowSubscriptionService().enumerateSubscriptionsByList(_spPageContextInfo.pageListId);"
&"      ctx.load(wfSubs);"
&"      ctx.executeQueryAsync(function () {"
&"          wfsEnum = wfSubs.getEnumerator();"
&"          while (wfsEnum.moveNext()) {"
&"              var wfSub = wfsEnum.get_current();"
&"              if (wfSub.get_name() === wfName) {"
&"                  wfsManager.getWorkflowInstanceService().startWorkflowOnListItem(wfSub,itemID,new Object());"
&"                  SP.UI.Notify.addNotification('Init Workflow: '+wfName+' on item: '+itemID, false);"
&"              }}});}"
&"  if (!SP.WorkflowServices) {"
&"      var script = document.createElement('script');"
&"      script.src = '/_layouts/15/sp.workflowservices.js';"
&"      script.onload = __startWorkflow;"
&"      document.head.appendChild(script);"
&"  } else {__startWorkflow();}"
&"}"
&"var TR=this;while(TR.tagName!='TR'){TR=TR.parentNode}"    
&"startWorkflow(TR.id.split(',')[1] , 'YOUR_WORKFLOW_TITLE_GOES_HERE');"
&"}"">Collect Signature</button>"

Should work on any site, no need to change URLs, all you need to change is: YOUR_WORKFLOW_TITLE_GOES_HERE
There is no error checking at all, I debugged with a simple Send-Email workflow.

Fun with Calculated Columns

You can apply all your Calculated Formula skills; since Formula contents are beign evaluated on every Item change you are essentially creating a kind of self-modyfing JavaScript code.

&"startWorkflow(TR.id.split(',')[1] , 'YOUR_WORKFLOW_TITLE_GOES_HERE');"

Change it to select different Workflows based on a (task) Status:

&"startWorkflow(TR.id.split(',')[1] , '"
  &IF(Status="Approved","MyUnApproveWF","CollectSignatureWF")
&"');"

ICC IWF

http://www.viewmaster365.com/#/Create/ActionDelete

http://www.viewmaster365.com/#/How

1395/08/23 05:13 ب.ظخیرAdministration
33/5033321759259
11393/10/23 07:08 ب.ظ1
mostafa rafiei
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/08/30 06:21 ب.ظ

One of my requirements was to create a script that backups all my site collections in a development environment.

Backups and script requirements

Backing up and restoring a SharePoint environment can be done in different ways. The choice for the backup strategy depends on granularity one would like to achieve (and naturally also the expenses). There are some of the ways of backing up SharePoint:

  • Central Admin backup options
  • SQL Server back up of databases
  • Third party tools
  • PowerShell

The Central admin option improved quite a bit from the last version, nevertheless, it is a good choice when you need to do manual work. SQL Server is good if you want to backup whole content databases. Third party tools come into play due to their granularity and automatisms. However, these solutions are too costly and oversized for my purpose here. I wanted a solution that is more customizable and automated. Therefore, the last option was to write a PowerShell script that creates a backup of each single site collection in my farm. The requirements for this script are:

  1. backup all site collections of my entire farm
  2. execute multiple times a backup without overriding the old backups
  3. log all script results in a log file
  4. remove backups that are older than x days
  5. execute the backups on a daily basis

The script

According to the requirements above, the resulting script looks as follows:

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

# specify here your backup folder
$backupRoot = "C:ScriptingBackup"
$logPath = Join-Path $backupRoot "_logs"
$tmpPath = Join-Path $backupRoot "_tmp"
# removes all the old backup files on the target folder (valid values: 0 = do not remove; 1 = remove files
$clearUpOldFiles = 0
# specifies the days for the backups that should be persisted
$removeFilesOlderThanDays = -1
# specifies the backupfolder based on the current weekday (Monday... etc.)
$todaysBackupFolder = Join-Path $backupRoot ((Get-Date).DayOfWeek.toString())

# generate all necessary folders if they are missing
if (-not (Test-Path $logPath)) {
  New-Item $logPath -type directory
}

if (-not (Test-Path $tmpPath)) {
  New-Item $tmpPath -type directory
}

if (-not (Test-Path $todaysBackupFolder)) {
  New-Item $todaysBackupFolder -type directory
}

# creates a log file
Start-Transcript -Path (Join-Path $logPath ((Get-Date).ToString('yyyyMdd_hhmmss') + ".log"))

# loop over all web applications (specify filter criteria here if you want to filter them out)
foreach ($webApplication in Get-SPWebApplication) {
    Write-Host
    Write-Host
    Write-Host "Processing $webApplication"
    Write-Host "*******************************"

    foreach ($site in $webApplication.Sites) {
        # we have to replace some characters from the url name
        $name = $site.Url.Replace("http://", "").Replace("https://", "").Replace("/", "_").Replace(".", "_");
        # replace all special characters from url with underscores
        [System.Text.RegularExpressions.Regex]::Replace($name,"[^1-9a-zA-Z_]","_");

        # define the backup name
        $backupPath = Join-Path $tmpPath ($name + (Get-Date).ToString('yyyyMdd_hhmmss') + ".bak")

        Write-Host "Backing up $site to $backupPath"
        Write-Host

        # backup the site
        Backup-SPSite -Identity $site.Url -Path $backupPath
    }

    Write-Host "*******************************"
    Write-Host "*******************************"
}

Write-Host
Write-Host

# remove the old backup files in the todays folder if specified
if ($clearUpOldFiles -eq 1) {
  Write-Host "Cleaning up the folder $todaysBackupFolder"
  Remove-Item ($todaysBackupFolder + "*")
}

# move all backup files from the tmp folder to the target folder
Write-Host "Moving backups from $tmpPath to $todaysBackupFolder"
Move-Item -Path ($tmpPath + "*") -Destination $todaysBackupFolder
# you can specify an additial parameter that removes filders older than the days you specified

if ($removeFilesOlderThanDays -gt 0) {

  Write-Host "Checking removal policy on $todaysBackupFolder"

  $toRemove = (Get-Date).AddDays(-$removeFilesOlderThanDays)

  $filesToRemove = Get-ChildItem $todaysBackupFolder -Recurse -Include "*.bak" | Where {$_.LastWriteTime -le “$toRemove” }

  if ($filesToRemove -ne $null) {

    foreach ($fileToRemove in $filesToRemove)  {

      Write-Host "Removing the file $fileToRemove because it is older than $removeFilesOlderThanDays days"

      Remove-Item $fileToRemove

    }

  }

}

Stop-Transcript
1
 

The script logic is pretty straightforward. Please change these script variables to your environment accordingly:

  • $backupRoot = “C:ScriptingBackup”: specify the backup location for the backup files and log files.
  • $clearUpOldFiles = 0: remove the old backups of the given weekday
  • $removeFilesOlderThanDays = –1: remove all backup files of the current weekday if they are older than x days (–1 means disabled).

You can leave the rest untouched. Basically, the script version above executes the following logic:

  • get the weekday and create a backup folder (if it does not exist) in the $backupRoot
  • loop over all web applications
    • loop over all sites of the current web application
      • get a unique backup name for the current site
      • execute the Backup-SPWeb operation for the given site and store it into a _tmp folder
  • if the variable $clearUpOldFiles = 1, then clear up the existing weekday folder
  • move the backups from _tmp to the weekday folder
  • if $removeFilesOlderThanDays > 0, then check if there are files in the weekday folder that are older than x days. Remove them if you found any.
  • store the log into the “_log” folder that resides in the $backupRoot

The script automatically creates all necessary files and folders. Anyway, we have to ensure following if we want to execute successfully this script:

But we did not cover all requirements!

With the script above we are able to cover requirements 1 to 4. You can execute the script manually as many times you want. The backup names are unique and allow you to do this as many times you want. You can even play around with the variables $clearUpOldFiles and $removeFilesOlderThanDays to keep your disk a little bit under control. Nevertheless, we also want to conver requirement 5 and automate the whole story. We only need to create a scheduled task on our Windows Server. The next screens tell you how to do this:

  • go to the server manager of your Windows Server 2008 and go under Configuration –> Task Scheduler
  • press Create Task… on the right side of the screen. You should see screen that follows. I gave to the task the name PowerShell Backup Script,selected Run whether user is logged on or not and ensured that the user that runs the task has enough privileges to write to the backup folder and execute the Backup-SPWeb operation (in my case I selected the SharePoint farm administrator – spowner).
  • I went to the Triggers tab and clicked the button New…. I configured the schedule from Monday to Friday and pressed OK.
  • I went to the Actions tab and clicked the button New…. I copied following execution path: C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -NoLogo -NonInteractive -File “C:ScriptingBackupExecuteBackup.ps1″ into theProgram/Script section. Please change the path in bold to your backup destination. Confirm with OK
  • Another window opens. Just confirm.

Store the script and we are done. Requirement 5 is covered with the scheduled task. You can still execute the script directly from file system or by executing it directly from the Task Scheduler window

Summary

This blog post described a PowerShell script that is backing up all site collections in a farm. Feel free to use this script and change it to your needs. Please note that this script is not intended for production environments. Nevertheless, it shows that you can achieve good results with a little bit of PowerShell skills.

1394/08/30 06:21 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/08/14 01:23 ب.ظ
 

In this post I will show you how to use JS Link to implement delete-buttons in a list view.

I will use the built-in "Edit" field as a base for this customisation. The "Edit" column normally shows a button for opening the list item in edit mode. I will override the rendering of the "Edit" button and add another button for deleting the selected list item, as shown in the following screenshot.

The first thing we need is a javascript file with some code for overriding the default rendering of the "Edit" field in list view mode. The following code will do this:

(function () {
    function view(ctx, field) {
        // Get the markup that is by default rendered for the "Edit" field.
        var editButtonHtml = (new ComputedFieldRenderer(field.Name)).RenderField(
            ctx, field, ctx.CurrentItem, ctx.ListSchema);
        if (editButtonHtml.replace(/&nbsp;/gi,'')) {
            // If the edit button is displayed, it means that the user has edit permissions. 
            // Then display a delete button also.
            var deleteButtonHtml =

                "<a href='#' title='Delete'><img src='/_layouts/15/images/delitem.gif' " +
                "onclick='javascript:window.deleteItem(\"" + ctx.ListTitle + "\",this);'/></a>";
                return editButtonHtml + "&nbsp;&nbsp;" + deleteButtonHtml;
        }
       
 return editButtonHtml;
    }
    var overrideCtx = {};
    overrideCtx.Templates = {};
    overrideCtx.Templates.Fields = {
        
'Edit': {
            'View': view
 
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();


When clicking on the delete button, we make a call to a function called window.deleteItem, which will contain the logic for deleting the given list item. We will implement this logic by making a REST call to delete a list item by id. The id is extracted from the table row of the clicked button.

window.deleteItem = function (listName, element) {

    if (DeleteItemConfirmation()) {
        // Extract the id of the clicked list item.
        
var id = $(element).closest("tr[iid]").attr("iid").split(',')[1];
        $.ajax({
            url: window._spPageContextInfo.webServerRelativeUrl +
                "/_api/web/lists/getbytitle('" + listName + "')/items(" + id + ")",
            type:
 "POST",
            headers: {
                "ACCEPT":"application/json;odata=verbose",
                "content-type":"application/json;odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                
"IF-MATCH":"*",
                
"X-HTTP-Method":"DELETE"
            }
            success:
 function(data) {
                $(element).closest(
"tr[iid]").remove();
            }
            error:
 function
(error) {
                console.log(JSON.stringify(error));
            }
        });
    }
}
 

That's all the code that we need to deploy for this example. Now the next step is to configure the SharePoint list so that it uses our javascript code when displaying the list items. We do this by first putting the all javascript code in a file called fruits.edit.jslink.js and then uploading that file to a document library on the site. In this example we will upload the file to a document library called Scripts.

As a next step we need to configure the JS Link property on the list, so that it points to the javascript file we just uploaded. This can be done e.g. by using PowerShell or the client API. In this example I will use the C# client API.

var jslink = "clienttemplates.js|~site/Scripts/fruits.edit.jslink.js";
var
 context = new ClientContext(siteUrl);
var
 list = context.Web.Lists.GetByTitle("Fruits");
var field = list.Fields.GetByInternalNameOrTitle("Edit");
context.Load(field);
context.ExecuteQuery();
if (field.JSLink != jslink) {
    field.JSLink = jslink;
    field.UpdateAndPushChanges(
true);
    context.ExecuteQuery();
}

After the JS Link property is configured on the list, we can add the "Edit" column to the list view and it will then display the additional delete buttons for each list item.

An advantage with this solution is that the code that we deployed in the JS Link file does not contain any reference to a specific list. It means that the same code can be used on any list on the site. We can even configure the same JS Link file on the "Edit" site column, which would apply this logic to all lists on the site.

1394/08/14 01:23 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
01394/08/06 12:32 ب.ظ

دسترسی.PNG

در صورت فعال نبودن ، حقوق دسترسی برای کاربران بینام ، برای لیست ها برقرار نمی گردد .

1394/08/06 12:32 ب.ظخیرDevelop
0
1393/11/07 08:21 ق.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/08/03 06:47 ب.ظ
1394/08/03 06:47 ب.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/07/13 08:37 ق.ظ

If you have an application that you want to run on Windows Server 2012 that requires the .NET Framework 3.5, you will most likely run in to a problem when trying to install it. If you are trying to install .NET Framework 3.5 from the Server Manager GUI, you will see this when installing the feature:

“Do you want to specify an alternate source path? One or more installation selections are missing source files…”

Bug when adding .net framework 3.5 in Server 2012 

To solve this, you can either:

1. Go to a command prompt and enter this:

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

Note: Source should be the Windows installation disc. In my case, this was located on D:

Bug when adding .net framework 3.5 in Server 2012 

2. Go down to “Specify an alternate source path” and enter “d:\sources\sxs” as the path.

Specify alternate source path windows server 2012 .net framework 3.5 

Specify alternate source path windows server 2012 .net framework 3.5 

Now you should see this under your Features list:

http://www.danielclasson.com/install-net-framework-35-server-2012/

1394/07/13 08:37 ق.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/07/11 01:38 ب.ظ
1394/07/11 01:38 ب.ظخیرDevelop
0
1393/10/23 07:08 ب.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/07/11 10:16 ق.ظ
 ابتدا یک گروه در قسمت تنظیمات حقوق دسترسی سایت ایجاد کنید  حال می خواهیم به این گروه در یک لیست اجازه خواندن بدهیم و دیگر اجازه های خواندن را از لیست برداریم .
از قسمت تنظیمات لیست روی حقوق دسترسی برای این لیست کلیک می کنیم

عکس یک.PNG 

 
 

عکس دو.PNG 

در حالت پیشفرض دسترسی های لیست  از سایت به ارث برده می شود .ابتدا ارث بری دسترسی ها را از سایت قطع می کنیم .

عکس سه.PNG 

در این حالت شما می توانید دسترسی های لیست را ویرایش کنید .

عکس چهار.PNG 

 

گروه هایی که می خواهید در سایت دسترسی نداشته باشند را انتخاب کنید و بر روی برداشتن حقوق دسترسی کلیک کنید .

 

عکس هفت.PNG 

گروهی که می خواهید به آن دسترسی خواندن یا هر دسترسی دیگری را بدهید انتخاب کنید و ویرایش حقوق درترسی را کلیک کنید .

 عکس شش.PNG

داخل صفحه دسترسی  گروه می شوید و آنجا می توانید تیک دسترسی مورد نظر خود را بزنید و روی دکمه ذخیره کلیک کنید .

 

عکس هشت.PNG

اگر نام گروه دسترسی یا فرد مورد نظر وجود ندارد می توانید با زدن دکمه اعطای دسترسی وارد صفحه جدید شده و اسم فرد یا گروه را انتخاب نمایید و به آن دسترسی بدهی عکس شماره نه.PNG

 و اسم فرد یا گروه را انتخاب نمایید و با زدن دکمه نمایش گزینه ها به  آن دسترسی دهید و دکمه اشتراک را بفشارید

عکس ده.PNG 

1394/07/11 10:16 ق.ظخیرآموزشی
0
1393/10/23 07:08 ب.ظ
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
01394/07/08 12:11 ب.ظ

​در فرم اینفوپث یک کانکشن زدم به لیست اطلاعات کاربران

 بعد یه تکس باکس اضافه کردم و رول دادم بهش . رول ست فیلد ولیو ، و ولیوش رو گذاشتم نام و نام خانوادگی از دیتاکانکشن لیست کاربر

​موقع لود فرم هم باید رولی بذارم ؟

چون جواب نداد

1394/07/08 12:11 ب.ظخیرDevelop
0
1393/11/07 08:21 ق.ظ
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/07/04 10:41 ق.ظ

نحوه پیکربندی سرور شیرپوینت 2013 برای نصب app از Office Store

clock تخمین مدت زمان مطالعه‌ی مطلب: شش دقیقه
از ویژگی‌های جدید و البته جالب شیرپوینت 2013 امکان استفاده از App‌ها می‌باشد. برای شناخت بیشتر app‌ها پیشنهاد می‌کنم به MSDN  مراجعه کنید. در این پست قصد دارم مراحل استفاده از SharePoint Marketplace مایکروسافت را برای دریافت و نصب app در سرور شیرپوینت و طریقه پیکر بندی سروربیان کنم.
اگر برای بار اول بخواهید یک app را روی سرور شیرپوینت نصب کنید ممکن است این پیغام به شما نمایش داده شود :
Sorry, apps are turned off. If you know who tuns the server, tell them to enable apps.

 

 

 
دقت کنید که کم رنگ بودن آیکون App به معنی عدم پشتیبانی در سرور شیرپوینت شما است و در صورت تلاش برای نصب آن این پیغام را خواهید دید :

 

 
دلیل این پیغام ( apps are turned off) تنظیم نبودن سرور شیرپوینت (Front-End) برای پشتیبانی و میزبانی از App‌ها می‌باشد . برای استفاده از app‌ها در شیرپوینت نیازمند یک sub-domain و دیگر تنظیمات هستید تا بتوانید از app‌ها استفاده کنید . برای این منظور مراحل زیر را پی بگیرید :
وارد سایت Office Store مایکروسافت شده و app مورد نظر خود را بیابید . در اینجا من از app‌های رایگان1 مورد را انتخاب می‌کنم و با آن شروع می‌کنم : نمایش وضعیت آب و هوا در شیرپوینت .

 

 
روی Add کلیک کنید تا جزییات app و شناسه آن نمایش داده شود . سپس آن شناسه را کپی کنید : ( شناسه app مذکور WA103062091 است )

 

 
در اینجا یک بار مراحل را برای نصب app تا رسیدن به خطا پیگیری میکنیم. سپس راه حل آن بیان می‌شود. توجه داشته باشید که باید پس از رفع مشکل ، مراحل این قسمت از نصب app مجدد انجام شوند .
 
وارد سایت شده و روی آیکون چرخدنده (تنظیمات) کلیک کنید :

 

 

 

 
در پنجره باز شده شناسه app را paste کنید و جستجو را آغاز کنید :
  

 

باید در نتیجه جستجو نمایش داده شود که app در SharePoint Store یافت شد
  

 

  روی لینک کلیک کنید تا نتیجه جستجو در Store نمایش داده شود :
توجه داشته باشید که در صفحه باز شده حتما یک واحد پولی و یک زبان را انتخاب نمایید .

 

ودر این مرحله خطای مذکور که گفته شد نمایش داده می‌شود :  

 

 
حال به بیان راه حل می‌پردازیم :
برای استفاده از App‌ها در شیرپوینت باید سرویس‌های مرتبط و زیر دامنه (CNAME) سرور مرتبط برای آن تنظیم شده باشد .
برای این منظور ابتدا تنظیمات DNS را انجام می‌دهیم :

 

 
برای دامنه جاری یک CNAME تعریف کنید : 

 

 

 

 
Alias Name پنجره فوق به این معنا است که تمام app‌ها در مسیری با فرمت زیر مدیریت می‌شوند :
AppID.app.vm-seifollahi.iri
اگر به جای *.app فقط * قرار دهید ، هر شناسه app به عنوان زیر دامنه آدرس دهی می‌شود که در کل تفاوتی ندارد و برای مشخص شدن بهتر این کار را انجام دادم .
برای چک کردن صحت تنظیمات خود روی مسیری مانند Apps-12345678ABCDEF.app.vm-seifollahi.iri دستور ping را اجرا نمایید.
  
پس از تایید این تنظیمات باید وارد CA شوید و سرویس‌ها را تنظیم کنید : باید دو سرویس App Management Service و Subscription Setting Service در وضعیت Started باشند .

 

  پس از چک کردن سرویس‌ها باید تنظیمات مربوط به App Pool‌های IIS و دیتابیس برای App Managemetn Service و Subscription Service تنظیم شود . برای این منظور از Power Shell کمک می‌گیریم و دستورات زیر را در آن اجرا می‌کنیم (توضیحات در کامنت‌ها وجود دارند ) :

 

 

 
$account = Get-SPManagedAccount "vmseifollahi\administrator
# Gets the name of the managed account and sets it to the variable $account for later use.

 
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
# Creates an application pool for the Subscription Settings service application. 
# Uses a managed account as the security account for the application pool.
# Stores the application pool as a variable for later use.

 
$appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account
# Creates an application pool for the Application Management service application. 
# Uses a managed account as the security account for the application pool.
# Stores the application pool as a variable for later use.

 
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseNameMBS_SettingsServiceDB
# Creates the Subscription Settings service application, using the variable to associate it with the application pool that was created earlier.
# Stores the new service application as a variable for later use.
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc
# Creates a proxy for the Subscription Settings service application.

 
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName MBS_AppServiceDB
# Creates the Application Management service application, using the variable to associate it with the application pool that was created earlier.
# Stores the new service application as a variable for later use.

 
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc
# Creates a proxy for the Application Management service application.
 

 

 
پس از نصب مشاهده میکنید که دیتابیس‌ها با موفقیت نصب شدند :
  

 

حال به CA رفته ( DOMAIN/_admin/ServiceApplications.aspx ) و از Start بودن سرویس‌های تنظیم شده اطمینان پیدا کنید : (از همین صفحه نیز می‌توانید تنظیماتی که قبلا در power shell انجام شد را انجام دهید)
 

 

حال در CA به صفحه Apps می‌رویم :

 

 
و روی Configure App URL کلیک کنید :

 

در صورتی که پیغام زیر را مشاهده کردید ، IIS را باز کنید :
 

 

در قسمت Application Pools به دنبال SharePoint Web Service Root بگردید و آن را Start نمایید :

 

 
حال صفحه تنظیمات باز می‌شود . مقادیر domain و prefix را تنظیم کنید :

 

 
سپس روی OK کلیک کنید در این مرحله تنظیمات سرور شیرپوینت تمام شد و باید به ترتیب زیر آنها را restart کنید :

ابتدا SharePoint Timer service را Stop کنید.
سپس سرویس IIS را Restart کنید
حال SharePoint Timer service را Start کنید .

اکنون مراحل را مجدد از سر بگیرید یعنی روی منوی تنظیمات سایت و روی add App کلیک کنید و app را جستجو کنید و مراحل نصب را اجرا کنید تا به مرحله Add کردن app برسید . حال مشاهده می‌کنید که دکمه فعال بوده و می‌توانید آن را نصب کنید :
  
 

 

پس از کلیک روی add به store preview منتقل خواهید شد : (این تصویر مربوط به محصولی دیگر است)

 

ممکن است پس از زدن دکمه continue خطایی مانند تصویر زیر را مشاهده کنید :

 

در این صورت احتمالا با کاربر System Account وارد سیستم شده اید که باید از آن خارح شده و با نام کاربری دیکری که دسترسی لازم را دارد وارد شوید .

با کلیک روی continue به marketplace مایکروسافت منتقل خواهید شد که نیازمند یک حساب کاربری در مایکروسافت می‌باشد :

 

حال پنجره زیر نمایش داده می‌شود و به شما اجازه‌ی دانلود app داده می‌شود :

 
روی return to site کلیک کنید تا پنجره بعدی برای گرفتن اعتماد شما برای نصب نمایش داده شود :


 


روی trust it کلیک کنید تا به صفحه site Content منتقل شوید :

 


همانطور که مشاهده می‌کنید app در حال دانلود شدن است :

 

 
 
حال در سمت چپ سایت روی نام App کلیک کنید (ترجیحا از مرور گر IE و ورژن 9 یا 10 استفاده کنید )

 

حال وارد تنظمیات app می‌شوید (در صورت درخواست نام کاربری و کلمه عبور آن را وارد کنید)

 

و نتیجه این هفت خوان رستم :

 

 
chrome - 29.0 clock در ‫۲ سال قبل، جمعه ۸ شهریور ۱۳۹۲، ساعت ۱۴:۵۰ clock مشاهده: ۱۱۱۹ comment نظرات : ۰ 
tag گروه(ها):    
 امتیاز ۴,۵۷ از ۵ توسط ۷ نفر info
 
نحوه پیکربندی سرور شیرپوینت 2013 برای نصب app از Office Store
Rated4.57/5 based on7readers reviews
محمد باقر سیف اللهیmore items from:مطالب ارسالی محمد باقر سیف اللهی

# نظرات خوانندگان

  • اولین نفری باشید که نظری را ارسال می‌کند!

© .NET Tips, ۱۳۸۷-۱۳۹۴   Sitemap فناوری‌ها article

1394/07/04 10:41 ق.ظخیرAdministration
0
1393/10/23 07:08 ب.ظ
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
11394/07/01 08:54 ق.ظ

 میشه چندتا ضمیمه در یک فرم داشته باشیم ؟

مثلا اولی نمونه نامه فلان را بارگذاری کنند ، در دومی نامه ی دیگر  و .... ​

mostafa rafiei1394/07/01 10:47 ق.ظخیرDevelop
13/4810882020513
21393/11/07 08:21 ق.ظ1
mostafa rafiei
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
01394/06/26 11:55 ق.ظ

https://social.technet.microsoft.com/Forums/sharepoint/en-US/085fc420-8107-4593-a4c9-04be8c94c625/how-to-configure-sharepoint-to-send-email-to-external-users?forum=sharepointadminprevious

Hi, I had the same issue on an SBS box which is a lot more awkward as normally you wouldn't have sharepoint and exchange on the same box. I'm posting here although this is very old just in case some other poor fool spends an entire day messing around like I did. These instructions are explicitly for a SBS 2011 standard installation but should work with other scenarios (obvioulsy replace any connector names with your own)

Open as administrator exchange management shell and run:
 
Get-ReceiveConnector "Windows SBS Fax Sharepoint Receive SERVER" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

This will allow relay to external recipients from sharepoint (The default server address in sharepoint foundation on an SBS box outgoing email server resolves through a local DNS entry to 127.0.0.1 - The SBS Fax Sharepoint Receive connector only runs on 127.0.0.1 - kinda makes sense)

Running:

Get-ReceiveConnector “Windows SBS Internet Receive SERVER” | Remove-ADPermission -User “NT AUTHORITY\ANONYMOUS LOGON” -ExtendedRights “ms-Exch-SMTP-Accept-Any-Recipient”

will stop open relays from the internet. I found that when checking for open relays that the SBS Internet Receive connector will accept any recipient. Of course this can be restricted by IP on your connector, but I'd rather not have it look like an open relay and get every man and his dog having a go at it.

 

Hope this helps somebody

http://blogs.technet.com/b/exchange/archive/2006/12/28/3397620.aspx

Only the list below (specify IP address)

This option is for those who cannot authenticate with Exchange. The most common example of this is an application server that needs to be able to relay messages through Exchange.

First, start with a new custom receive connector. You can think of receive connectors as protocol listeners. The closest equivalent to Exchange 2003 is an SMTP Virtual Server. You must create a new one because you will want to scope the remote IP Address(es) that you will allow.

 

The next screen you must pay particular attention to is the "Remote Network settings". This is where you will specify the IP ranges of servers that will be allowed to submit mail. You definitely want to restrict this range down as much as you can. In this case, I want my two web servers, 192.168.2.55 & 192.168.2.56 to be allowed to relay.

 

The next step is to create the connector, and open the properties. Now you have two options, which I will present. The first option will probably be the most common.

Option 1: Make your new scoped connector an Externally Secured connector

This option is the most common option, and preferred in most situations where the application that is submitting will be submitting email to your internal users as well as relaying to the outside world.

Before you can perform this step, it is required that you enable the Exchange Servers permission group. Once in the properties, go to the Permissions Groups tab and select Exchange servers.

 

Next, continue to the authentication mechanisms page and add the "Externally secured" mechanism. What this means is that you have complete trust that the previously designated IP addresses will be trusted by your organization.

 

Caveat: If you do not perform these two steps in order, the GUI blocks you from continuing.

Do not use this setting lightly. You will be granting several rights including the ability to send on behalf of users in your organization, the ability to ResolveP2 (that is, make it so that the messages appear to be sent from within the organization rather than anonymously), bypass anti-spam, and bypass size limits. The default "Externally Secured" permissions are as follows:

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Authoritative-Domain}
MS Exchange\Externally Secured Servers {ms-Exch-Bypass-Anti-Spam}
MS Exchange\Externally Secured Servers {ms-Exch-Bypass-Message-Size-Limit}
MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Exch50}
MS Exchange\Externally Secured Servers {ms-Exch-Accept-Headers-Routing}
MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Submit}
MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Any-Recipient}
MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Authentication-Flag}
MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Any-Sender}

Basically you are telling Exchange to ignore internal security checks because you trust these servers. The nice thing about this option is that it is simple and grants the common rights that most people probably want.

Option 2: Grant the relay permission to Anonymous on your new scoped connector

This option grants the minimum amount of required privileges to the submitting application.

Taking the new scoped connector that you created, you have another option. You can simply grant the ms-Exch-SMTP-Accept-Any-Recipient permission to the anonymous account. Do this by first adding the Anonymous Permissions Group to the connector.

 

This grants the most common permissions to the anonymous account, but it does not grant the relay permission. This step must be done through the Exchange shell:

Get-ReceiveConnector "CRM Application" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

In addition to being more difficult to complete, this step does not allow the anonymous account to bypass anti-spam, or ResolveP2.

Although it is completely different from the Exchange 2003 way of doing things, hopefully you find the new SMTP permissions model to be sensible.

1394/06/26 11:55 ق.ظخیرAdministration
12/3422662037037
11393/10/23 07:08 ب.ظ1
محبوبه ذالی
  
تصویر : محبوبه ذالی
  • محبوبه ذالی
11394/05/31 09:49 ق.ظ

 تاریخ رو هم در زبان سایت گذاشتم هجری هم در لیست که ایجاد کردم و هم در فرم اینفوپث . اما در فرم اینفوپث میلادی نمایش میدهد . 

تنظیمات کجا رو جا انداختم  ؟ ​

mrafiei1394/05/31 10:13 ق.ظخیرDevelop
11/8829834566809
21393/11/07 08:21 ق.ظ1
mrafiei
1 - 20صفحه بعد
اعضا و رویدادهای انجمن
    In Develop.
  
  
  
  
  
  
  
  
  
Picture Placeholder: mostafa rafiei
  • mostafa rafiei
11393/10/23 07:08 ب.ظ
38
25
2
930
تصویر : محبوبه ذالی
  • محبوبه ذالی
11393/11/07 08:21 ق.ظ
34
17
1
500
Picture Placeholder: mrafiei
  • mrafiei
11394/04/13 12:33 ب.ظ
1
7
1
220
Picture Placeholder: System Account
  • System Account
11394/04/20 11:09 ق.ظ
1
1
0
1398/02/29 02:54 ب.ظ
30
Picture Placeholder: fbmesmaeily
  • fbmesmaeily
11393/12/12 09:48 ق.ظ
3
0
0
30
false,false,2